- Timestamp:
- 2010-08-06 12:54:25 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/31/saolhaka/KynariKakone/Peli.cs
r1640 r1656 4 4 using Jypeli.Widgets; 5 5 using Jypeli.Assets; 6 7 6 8 7 namespace Kynari … … 16 15 const double hyppyVoima = 2000; 17 16 18 Grenade kranaatti;19 17 PlatformCharacter pelaaja1; 20 18 PlatformCharacter pelaaja2; 19 DoubleMeter HitPoint1 = new DoubleMeter(100); 20 DoubleMeter HitPoint2 = new DoubleMeter(100); 21 22 Image kranaatinheittimenkuva = LoadImage("grenade"); 23 Image magnumkuva = LoadImage("magnum"); 24 Image norsu = LoadImage("norsu"); 21 25 22 26 BarGauge hpNaytto; … … 62 66 ClearAll(); 63 67 lisaaNappaimet(); 64 //Camera.Follow(pelaaja1);65 68 Camera.Position = new Vector(0, 0); 66 69 } … … 73 76 Level.Background.CreateGradient(Color.White, Color.Gray); 74 77 75 luoTasot( Level);76 lisaaPelaajat( Level);77 lisaaAsePelaajalle( Level);78 lisaaKerattavaAse( Level);79 lisaaHPNaytot( Level);78 luoTasot(); 79 lisaaPelaajat(); 80 lisaaAsePelaajalle(); 81 lisaaKerattavaAse(); 82 lisaaHPNaytot(); 80 83 81 84 return Level; 82 85 } 83 86 84 void luoTasot(Level Level) 85 { 86 PhysicsObject alusta = new PhysicsObject(Level.Width, 300, Color.Gray); 87 void luoTasot() 88 { 89 PhysicsObject alusta = new PhysicsObject(Level.Width, 300); 90 alusta.Color = Color.Gray; 87 91 alusta.X = 0; 88 92 alusta.Y = Level.Bottom - alusta.Height / 2; 89 Level.Objects.Add(alusta);90 91 lisaaPieniTaso( Level,-200, -350);92 lisaaPieniTaso( Level,0, -400);93 lisaaPieniTaso( Level,100, -300);94 lisaaPieniTaso( Level,400, -350);95 lisaaPieniTaso( Level,450, -200);96 lisaaPieniTaso( Level,-500, -400);97 lisaaPieniTaso( Level,-550, -200);98 lisaaPieniTaso( Level,-400, -300);99 lisaaPieniTaso( Level,-150, -150);100 lisaaPieniTaso( Level,-870, -350);101 lisaaPieniTaso( Level,-700, -400);102 103 lisaaPieniTaso( Level,600, -300);104 lisaaPieniTaso( Level,850, -300);105 lisaaPieniTaso( Level,750, -400);106 lisaaPieniTaso( Level,200, -200);107 lisaaPieniTaso( Level,-200, -150);108 109 lisaaPystyTaso( Level,600, -450);110 lisaaPystyTaso( Level,-600, -500);111 lisaaPystyTaso( Level,0, -450);112 113 lisaaReuna( Level,-900, 0);114 lisaaReuna( Level,900, 0);115 } 116 117 void lisaaHPNaytot( Level Level)93 Add(alusta); 94 95 lisaaPieniTaso(-200, -350); 96 lisaaPieniTaso(0, -400); 97 lisaaPieniTaso(100, -300); 98 lisaaPieniTaso(400, -350); 99 lisaaPieniTaso(450, -200); 100 lisaaPieniTaso(-500, -400); 101 lisaaPieniTaso(-550, -200); 102 lisaaPieniTaso(-400, -300); 103 lisaaPieniTaso(-150, -150); 104 lisaaPieniTaso(-870, -350); 105 lisaaPieniTaso(-700, -400); 106 107 lisaaPieniTaso(600, -300); 108 lisaaPieniTaso(850, -300); 109 lisaaPieniTaso(750, -400); 110 lisaaPieniTaso(200, -200); 111 lisaaPieniTaso(-200, -150); 112 113 lisaaPystyTaso(600, -450); 114 lisaaPystyTaso(-600, -500); 115 lisaaPystyTaso(0, -450); 116 117 lisaaReuna(-900, 0); 118 lisaaReuna(900, 0); 119 } 120 121 void lisaaHPNaytot() 118 122 { 119 123 // luodaan elämänäyttö 120 hpNaytto = new BarGauge(this); 121 hpNaytto.HorizontalOrigin = HorizontalAlignment.Center; 122 hpNaytto.VerticalOrigin = VerticalAlignment.Bottom; 123 hpNaytto.Size = new Vector(30, 250); 124 hpNaytto = new BarGauge(30, 250); 124 125 hpNaytto.Angle = Angle.Degrees(90); 125 hpNaytto. ValueColor = Color.LightGreen;126 hpNaytto. BackColor = Color.Red;127 hpNaytto.BindTo( pelaaja1.HitPoints);126 hpNaytto.BarColor = Color.LightGreen; 127 hpNaytto.Color = Color.Red; 128 hpNaytto.BindTo(HitPoint1); 128 129 hpNaytto.Position = new Vector(Screen.RightSafe - 1000, Screen.TopSafe - 170); 129 130 Add(hpNaytto); 130 131 131 hpNaytto2 = new BarGauge(this); 132 hpNaytto2.HorizontalOrigin = HorizontalAlignment.Center; 133 hpNaytto2.VerticalOrigin = VerticalAlignment.Bottom; 134 hpNaytto2.Size = new Vector(30, 250); 132 hpNaytto2 = new BarGauge(30, 250); 135 133 hpNaytto2.Angle = Angle.Degrees(90); 136 hpNaytto2. ValueColor = Color.LightGreen;137 hpNaytto2. BackColor = Color.Red;138 hpNaytto2.BindTo( pelaaja2.HitPoints);134 hpNaytto2.BarColor = Color.LightGreen; 135 hpNaytto2.Color = Color.Red; 136 hpNaytto2.BindTo(HitPoint2); 139 137 hpNaytto2.Position = new Vector(Screen.RightSafe - 300, Screen.TopSafe - 170); 140 138 Add(hpNaytto2); … … 145 143 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 146 144 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 147 pelaajan1Pisteet.UpperLimit += new Meter<int>.OnLimitHandler(laskuri1_UpperLimit);148 pelaajan2Pisteet.UpperLimit += new Meter<int>.OnLimitHandler(laskuri2_UpperLimit);145 pelaajan1Pisteet.UpperLimit += (laskuri1_UpperLimit); 146 pelaajan2Pisteet.UpperLimit += (laskuri2_UpperLimit); 149 147 } 150 148 … … 155 153 } 156 154 157 Meter<int>LuoPisteLaskuri(double x, double y)158 { 159 Meter<int> laskuri = new Meter<int>(0, 0, 10);160 ValueDisplay naytto = new ValueDisplay(this);155 IntMeter LuoPisteLaskuri(double x, double y) 156 { 157 IntMeter laskuri = new IntMeter(0); 158 Label naytto = new Label(); 161 159 naytto.BindTo(laskuri); 162 160 naytto.X = x; … … 166 164 } 167 165 168 void laskuri1_UpperLimit( Meter<int> sender)166 void laskuri1_UpperLimit(int pisteet) 169 167 { 170 168 MessageDisplay.Clear(); … … 174 172 } 175 173 176 void laskuri2_UpperLimit( Meter<int> sender)174 void laskuri2_UpperLimit(int pisteet) 177 175 { 178 176 MessageDisplay.Clear(); … … 182 180 } 183 181 184 void lisaaPieniTaso(Level Level, double x, double y) 185 { 186 PhysicsObject taso = new PhysicsObject(100, 30, Color.DimGray); 182 void lisaaPieniTaso(double x, double y) 183 { 184 PhysicsObject taso = new PhysicsObject(100, 30); 185 taso.Color = Color.Gray; 187 186 taso.X = x; 188 187 taso.Y = y; 189 Level.Objects.Add(taso); 190 } 191 192 void lisaaReuna(Level Level, double x, double y) 193 { 194 PhysicsObject taso = new PhysicsObject(50, 1000, Color.DimGray); 188 Add(taso); 189 } 190 191 void lisaaReuna(double x, double y) 192 { 193 PhysicsObject taso = new PhysicsObject(50, 1000); 194 taso.Color = Color.Gray; 195 195 taso.X = x; 196 196 taso.Y = y; 197 Level.Objects.Add(taso); 198 } 199 200 void lisaaPystyTaso(Level Level, double x, double y) 201 { 202 PhysicsObject taso = new PhysicsObject(30, 100, Color.DimGray); 197 Add(taso); 198 } 199 200 void lisaaPystyTaso(double x, double y) 201 { 202 PhysicsObject taso = new PhysicsObject(30, 100); 203 taso.Color = Color.Gray; 203 204 taso.X = x; 204 205 taso.Y = y; 205 Level.Objects.Add(taso);206 } 207 208 void lisaaPelaajat( Level Level)209 { 210 pelaaja1 = new PlatformCharacter(4 , Shapes.CreateCircle(20));211 pelaaja1. Texture = Content.Load<Texture2D>("norsu");206 Add(taso); 207 } 208 209 void lisaaPelaajat() 210 { 211 pelaaja1 = new PlatformCharacter(40, 40, Shapes.Circle); 212 pelaaja1.Image = norsu; 212 213 pelaaja1.X = -700; 214 pelaaja1.Mass = 4; 213 215 pelaaja1.Y = Level.Bottom + 20; 214 216 215 pelaaja2 = new PlatformCharacter(4 , Shapes.CreateCircle(20));216 pelaaja2. Texture = Content.Load<Texture2D>("norsu");217 pelaaja2 = new PlatformCharacter(40, 40, Shapes.Circle); 218 pelaaja2.Image = norsu; 217 219 pelaaja2.X = 700; 218 220 pelaaja2.Y = Level.Bottom + 20; 219 221 220 pelaaja1.HitPoints.MaxValue = 100;221 pelaaja1.HitPoints.Value = 100;222 pelaaja1.HitpointsReachedZero += new EventHandler(pelaajaKuoli);223 224 pelaaja2.HitPoints.MaxValue = 100;225 pelaaja2.HitPoints.Value = 100;226 pelaaja2.HitpointsReachedZero += new EventHandler(pelaajaKuoli);227 228 Level.Objects.Add(pelaaja1);229 Level.Objects.Add(pelaaja2);230 } 231 232 void pelaaja Kuoli(object sender, EventArgs e)222 HitPoint1.MaxValue = 100; 223 HitPoint1.Value = 100; 224 HitPoint1.LowerLimit += new EventHandler(pelaaja1Kuoli); 225 226 HitPoint2.MaxValue = 100; 227 HitPoint2.Value = 100; 228 HitPoint2.LowerLimit += new EventHandler(pelaaja2Kuoli); 229 230 Add(pelaaja1); 231 Add(pelaaja2); 232 } 233 234 void pelaaja1Kuoli(double Hitpointarvo) 233 235 { 234 236 PlatformCharacter pelaaja = (PlatformCharacter)sender; 237 /* 235 238 pelaaja.UnequipWeapon(); 236 239 Weapon kuolinAse = pelaaja.Weapon; … … 238 241 kuolinAse.Unequip(); 239 242 kuolinAse.Visible = true; 243 */ 240 244 pelaaja.Destroy(); 241 245 MessageDisplay.Clear(); 242 246 MessageDisplay.X = -100; 243 if (sender == pelaaja1) 244 { 245 MessageDisplay.Add("Pelaaja 2 voitti erän!"); 246 pelaajan2Pisteet.Value += 1; 247 } 248 if (sender == pelaaja2) 249 { 250 MessageDisplay.Add("Pelaaja 1 voitti erän!"); 251 pelaajan1Pisteet.Value += 1; 252 } 253 254 if (pelaajan1Pisteet.Value == pelaajan1Pisteet.MaxValue) 255 { 256 return; 257 } 247 MessageDisplay.Add("Pelaaja 2 voitti erän!"); 248 pelaajan2Pisteet.Value += 1; 258 249 259 250 if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue) … … 271 262 } 272 263 264 } 265 void pelaaja2Kuoli(double Hitpointarvo) 266 { 267 PlatformCharacter pelaaja = (PlatformCharacter)sender; 268 /* 269 pelaaja.UnequipWeapon(); 270 Weapon kuolinAse = pelaaja.Weapon; 271 kuolinAse.RemoveFromOwner(); 272 kuolinAse.Unequip(); 273 kuolinAse.Visible = true; 274 */ 275 pelaaja.Destroy(); 276 MessageDisplay.Clear(); 277 MessageDisplay.X = -100; 278 MessageDisplay.Add("Pelaaja 1 voitti erän!"); 279 pelaajan1Pisteet.Value += 1; 280 281 if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue) 282 { 283 return; 284 } 285 286 else 287 { 288 Timer ajastin2 = new Timer(); 289 ajastin2.Interval = 3; 290 ajastin2.Trigger += new Timer.TriggerHandler(eraloppui); 291 ajastin2.Start(); 292 AddTimer(ajastin2); 293 } 273 294 } 274 295 … … 345 366 } 346 367 347 void OnkoPelaaja(PhysicsObject olio) 348 { 349 return (olio == pelaaja1 || olio == pelaaja2); 350 } 351 352 void lisaaKerattavaAse( Level Level)368 void OnkoPelaaja(PhysicsObject olio) 369 { 370 return (olio == pelaaja1 || olio == pelaaja2); 371 } 372 373 void lisaaKerattavaAse() 353 374 { 354 375 //Täällä lisätään ase kenttään … … 356 377 Bullet luoti2 = new Bullet(); 357 378 Bullet hauli = new Bullet(); 358 359 kranaatti = new Grenade();379 380 Grenade kranaatti = new Grenade(); 360 381 kranaatti.Explosion = new Explosion(50, 200, 20, new Damage(10000)); 361 kranaatti.ExplodeCondition = OnkoPelaaja; 382 kranaatti.ExplodeCondition = OnkoPelaaja; 362 383 363 384 Texture2D shotgun = Content.Load<Texture2D>("shotgun"); … … 372 393 kivaari.Mass = 0.1; 373 394 kivaari.Tag = "Kivääri"; 374 Level.Objects.Add(kivaari);395 Add(kivaari); 375 396 376 397 AssaultRifle magnum = new AssaultRifle(luoti2); … … 386 407 magnum.Texture = magnumtexture; 387 408 magnum.AmmoType.Damage = new Damage(20); 388 Level.Objects.Add(magnum);409 Add(magnum); 389 410 390 411 AssaultRifle haulikko = new AssaultRifle(hauli); … … 398 419 haulikko.AmmoType.ClusterArc = 3; 399 420 haulikko.Texture = shotgun; 400 Level.Objects.Add(haulikko);421 Add(haulikko); 401 422 402 423 Cannon kranaatinheitin = new Cannon(kranaatti); … … 412 433 kranaatinheitin.UpdateShapeFromSize(); 413 434 kranaatinheitin.Texture = grenade; 414 Level.Objects.Add(kranaatinheitin);435 Add(kranaatinheitin); 415 436 416 437 //Lisää myös törmäyksen käsittelijä aseelle, jossa kutsutaan keraaAse -aliohjelmaa … … 421 442 } 422 443 423 void lisaaAsePelaajalle( Level Level)444 void lisaaAsePelaajalle() 424 445 { 425 446 Bullet luoti = new Bullet(); … … 431 452 pelaaja1.Weapon.FireRate = 2; 432 453 pelaaja1.Weapon.Mass = 0.1; 433 Level.Objects.Add(pelaaja1.Weapon);454 Add(pelaaja1.Weapon); 434 455 pelaaja1.EquipWeapon(); 435 456 pelaaja1.Weapon.MomentOfInertia = double.PositiveInfinity; … … 445 466 pelaaja2.Weapon.FireRate = 2; 446 467 pelaaja2.Weapon.Mass = 0.1; 447 Level.Objects.Add(pelaaja2.Weapon);468 Add(pelaaja2.Weapon); 448 469 pelaaja2.EquipWeapon(); 449 470 pelaaja2.Weapon.MomentOfInertia = double.PositiveInfinity; … … 519 540 if (ammus != null) 520 541 { 521 Level.Objects.Add(ammus);542 Add(ammus); 522 543 } 523 544
Note: See TracChangeset
for help on using the changeset viewer.