- Timestamp:
- 2013-06-14 12:41:32 (9 years ago)
- Location:
- 2013/24/EeroF
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/24/EeroF/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs
r4131 r4159 10 10 11 11 public class FysiikkaPeli1 : PhysicsGame 12 { 12 { 13 13 IntMeter pisteLaskuri; 14 14 PhysicsObject Mikko; … … 18 18 Image omenakuva = LoadImage("omena"); 19 19 Image hamiskuva = LoadImage("Hamis"); 20 Image hamiskuva2 = LoadImage("HamisNopea"); 20 21 Image SaMiKu = LoadImage("Sahkomies"); 21 22 Image mikkokaveri = LoadImage("MikkoKaveri2"); … … 39 40 public override void Begin() 40 41 { 42 IsPaused = false; 43 ClearAll(); 44 LataaAanet(); 45 Mouse.IsCursorVisible = true; 46 Level.Size = new Vector(1000, 800); 47 Camera.ZoomFactor = 1; 48 41 49 MultiSelectWindow valikko = new MultiSelectWindow("Tervetuloa peliin", 42 50 "Yksinpeli", "Kaksinpeli", "Lopeta"); … … 46 54 Level.Background.Image = Alku; 47 55 Level.Background.ScaleToLevelByHeight(); 48 56 Level.Background.TextureWrapSize = Vector.Diagonal; 57 } 58 59 void LataaAanet() 60 { 61 HamisLahella = LoadSoundEffect("HamisLahella"); 49 62 } 50 63 … … 67 80 } 68 81 69 70 71 82 void AloitaPeli() 83 { 84 DoNextUpdate(delegate { Mouse.IsCursorVisible = false; }); 72 85 LuoPelaaja(); 73 86 LuoKentta(); 74 87 75 88 LuoPistelaskuri(); 76 89 LuoElamaLaskuri(); … … 78 91 Level.Background.TileToLevel(); 79 92 Camera.Follow(Mikko); 93 //Camera.ZoomFactor = 20; 80 94 AddCollisionHandler(Mikko, "Omena", CollisionHandler.DestroyTarget); 81 95 AddCollisionHandler(Mikko, "Parannus", CollisionHandler.DestroyTarget); … … 159 173 if (pelaajia == 2) 160 174 { 161 Keyboard.Listen(Key.W, ButtonState.Down, PelaajaKavelee, "Pelaaja liikkuu", Mikko, 250.0); 162 Keyboard.Listen(Key.S, ButtonState.Down, PelaajaKavelee, "Pelaaja liikkuu taakse", Mikko, -250.0); 163 Keyboard.Listen(Key.W, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 164 Keyboard.Listen(Key.S, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 165 Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 166 Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 167 Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 168 Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 169 Keyboard.Listen(Key.D, ButtonState.Down, KaantyyOikealle, "Pelaaja kääntyy", Mikkokaveri); 170 Keyboard.Listen(Key.A, ButtonState.Down, KaantyyVasemmalle, "Pelaaja kääntyy", Mikkokaveri); 171 Keyboard.Listen(Key.Q, ButtonState.Down, KaantyyVasemmalle2, "Pelaaja kääntyy vähän", Mikkokaveri); 172 Keyboard.Listen(Key.E, ButtonState.Down, KaantyyOikealle2, "Pelaaja kääntyy vähän", Mikkokaveri); 173 Keyboard.Listen(Key.LeftShift, ButtonState.Down, Ampuu, "Ampuu", pelaajan2Ase); 174 175 ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, Ampuu, "Ampuu", pelaajan2Ase); 176 ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, KuunteleeOikeaaTattia, "Kääntää pelaajaa", Mikkokaveri); 177 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, PelaajaKavelee, "LiikuttaaPelaajaa", Mikkokaveri, 250.0); 178 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, PelaajaKavelee, "LiikuttaaPelaajaa", Mikkokaveri, -250.0); 179 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, PysaytaPelaaja, "LiikuttaaPelaajaa", Mikkokaveri); 180 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, PysaytaPelaaja, "LiikuttaaPelaajaa", Mikkokaveri); 175 if (ControllerOne.IsConnected) 176 { 177 ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, Ampuu, "Ampuu", pelaajan2Ase); 178 ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, KuunteleeOikeaaTattia, "Kääntää pelaajaa", Mikkokaveri); 179 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, PelaajaKavelee, "LiikuttaaPelaajaa", Mikkokaveri, 250.0); 180 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, PelaajaKavelee, "LiikuttaaPelaajaa", Mikkokaveri, -250.0); 181 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, PysaytaPelaaja, "LiikuttaaPelaajaa", Mikkokaveri); 182 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, PysaytaPelaaja, "LiikuttaaPelaajaa", Mikkokaveri); 183 } 184 else 185 { 186 Keyboard.Listen(Key.W, ButtonState.Down, PelaajaKavelee, "Pelaaja liikkuu", Mikkokaveri, 250.0); 187 Keyboard.Listen(Key.S, ButtonState.Down, PelaajaKavelee, "Pelaaja liikkuu taakse", Mikkokaveri, -220.0); 188 Keyboard.Listen(Key.W, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 189 Keyboard.Listen(Key.S, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 190 Keyboard.Listen(Key.Q, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 191 Keyboard.Listen(Key.E, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 192 Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 193 Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 194 Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 195 Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 196 Keyboard.Listen(Key.D, ButtonState.Down, KaantyyOikealle, "Pelaaja kääntyy", Mikkokaveri); 197 Keyboard.Listen(Key.A, ButtonState.Down, KaantyyVasemmalle, "Pelaaja kääntyy", Mikkokaveri); 198 Keyboard.Listen(Key.Q, ButtonState.Down, KaantyyVasemmalle2, "Pelaaja kääntyy vähän", Mikkokaveri); 199 Keyboard.Listen(Key.E, ButtonState.Down, KaantyyOikealle2, "Pelaaja kääntyy vähän", Mikkokaveri); 200 Keyboard.Listen(Key.LeftShift, ButtonState.Down, Ampuu, "Ampuu", pelaajan2Ase); 201 } 202 181 203 } 182 204 } … … 210 232 void Ampuu(AssaultRifle ase) 211 233 { 212 234 213 235 PhysicsObject ammus = ase.Shoot(); 214 236 … … 234 256 if (kohde is Vihu) 235 257 { 236 Vihu hamis = kohde as Vihu; +258 Vihu hamis = kohde as Vihu; 237 259 hamis.ElamaLaskuri.Value -= 1; 238 260 hamis.Hit(Vector.FromLengthAndAngle(2500, ammus.Angle)); … … 276 298 } 277 299 300 LuoHamis2(); 301 278 302 for (int i = 0; i < 10; i++) 279 303 { … … 281 305 } 282 306 Level.CreateBorders(); 307 283 308 Timer ajastin = new Timer(); 284 309 ajastin.Interval = 7.5; … … 286 311 ajastin.Start(); 287 312 288 313 Timer ajastin2 = new Timer(); 314 ajastin2.Interval = 10; 315 ajastin2.Timeout += delegate { LuoHamis2(); }; 316 ajastin2.Start(); 289 317 } 290 318 void LisaaVihuja() … … 301 329 int luku2 = RandomGen.NextInt(-5000, 5000); 302 330 PhysicsObject Omena = new PhysicsObject(15, 15); 331 Omena.IgnoresCollisionResponse = true; 303 332 Omena.Image = omenakuva; 304 333 Omena.Tag = "Omena"; … … 321 350 PhysicsObject SaMi = new PhysicsObject(120, 100); 322 351 SaMi.Image = SaMiKu; 323 352 SaMi.CollisionIgnoreGroup = 2; 324 353 325 354 SaMi.X = x + luku; … … 367 396 } 368 397 369 void ElamaLoppui(PhysicsObject kuollut) 398 void ElamaLoppui(PhysicsObject kuollut) 370 399 { 371 400 kuollut.Destroy(); 372 401 if (kuollut.Image.Equals(mikkokuva)) Kuoli.Play(); 373 402 else Kuoli2.Play(); 374 403 375 404 } 376 405 … … 385 414 topLista.EnterAndShow(pisteLaskuri.Value); 386 415 }; 416 ajastin.IgnorePause = true; 387 417 ajastin.Start(1); 388 389 390 // topLista.HighScoreWindow.Closed += AloitaPeli;391 418 IsPaused = true; 419 420 topLista.HighScoreWindow.Closed += delegate { Begin(); }; 421 392 422 } 393 423 void LisaaElamaa(PhysicsObject tormaaja, PhysicsObject kohde) … … 395 425 if (tormaaja.Image.Equals(mikkokuva)) elamaLaskuri.Value++; 396 426 else elamalaskuri2.Value++; 397 DoNextUpdate 427 DoNextUpdate(delegate 398 428 { 399 429 tormaaja.AngularVelocity = 0; 400 430 tormaaja.AngularAcceleration = 0; 401 431 }); 402 432 403 433 } 404 434 void VahennaElamaa(PhysicsObject tormaaja, PhysicsObject kohde) … … 408 438 409 439 Ai.Play(); 440 DoNextUpdate(delegate 441 { 442 tormaaja.AngularVelocity = 0; 443 tormaaja.AngularAcceleration = 0; 444 }); 410 445 } 411 446 void LuoHamis() … … 433 468 LuoElamaLaskurivihkulle(Hamis); 434 469 } 470 void LuoHamis2() 471 { 472 Vihu Hamis = new Vihu(30, 30); 473 Hamis.CollisionIgnoreGroup = 2; 474 Hamis.Color = Color.Black; 475 Hamis.Tag = "Hamis"; 476 Hamis.ElamaLaskuri.LowerLimit += Vihukuoli; 477 Hamis.CanRotate = false; 478 FollowerBrain aivot = new FollowerBrain("pelaaja"); 479 Hamis.Brain = aivot; 480 aivot.Speed = 200; 481 aivot.Active = true; 482 aivot.TargetClose += Hamislahella; 483 aivot.DistanceClose = 1000; 484 485 Hamis.Image = hamiskuva2; 486 487 int luku = RandomGen.NextInt(-5000, 5000); 488 int luku2 = RandomGen.NextInt(-5000, 5000); 489 Hamis.X = luku; 490 Hamis.Y = luku2; 491 Add(Hamis); 492 493 LuoElamaLaskurivihkulle(Hamis); 494 } 495 435 496 void LuoParannus() 436 497 { … … 438 499 int luku2 = RandomGen.NextInt(-5000, 5000); 439 500 PhysicsObject Parannus = new PhysicsObject(50, 50); 501 Parannus.IgnoresCollisionResponse = true; 440 502 Parannus.Image = Tahti; 441 503 Parannus.Tag = "Parannus"; … … 452 514 Mikko = new PhysicsObject(70, 49); 453 515 Mikko.Image = mikkokuva; 516 Mikko.LinearDamping = 0.9; 517 Mikko.AngularDamping = 0.9; 518 454 519 455 520 Mikko.Tag = "pelaaja"; … … 465 530 466 531 467 // pelaajan1Ase.Power.DefaultValue = 100;532 // pelaajan1Ase.Power.DefaultValue = 100; 468 533 Mikko.Add(pelaajan1Ase); 469 534 pelaajan1Ase.Y = -10; … … 475 540 Mikkokaveri = new PhysicsObject(70, 49); 476 541 Mikkokaveri.Image = mikkokaveri; 542 Mikko.LinearDamping = 0.9; 543 Mikko.AngularDamping = 0.9; 477 544 Mikkokaveri.X = -60; 478 545 Mikkokaveri.Tag = "pelaaja"; … … 485 552 486 553 487 // pelaajan2Ase.Power.DefaultValue = 100;554 // pelaajan2Ase.Power.DefaultValue = 100; 488 555 Mikkokaveri.Add(pelaajan2Ase); 489 556 pelaajan2Ase.Y = -10; … … 517 584 void Lopetus() 518 585 { 519 MultiSelectWindow valikko = new MultiSelectWindow("Haluatko lopettaa?", 520 "Kyllä", "Ei"); 586 Mouse.IsCursorVisible = true; 587 MultiSelectWindow valikko = new MultiSelectWindow("Pause", 588 "Jatka", "Päävalikko", "Poistu"); 521 589 valikko.ItemSelected += PainettiinValikonNappia2; 522 590 Add(valikko); 523 591 IsPaused = true; 524 592 525 593 } 526 594 … … 531 599 case 0: 532 600 601 IsPaused = false; 602 DoNextUpdate(delegate { Mouse.IsCursorVisible = false; }); 603 break; 604 605 case 1: 606 Begin(); 607 break; 608 609 case 2: 533 610 Exit(); 534 611 break; 535 case 1: 536 IsPaused = false; 537 538 break; 539 540 } 541 } 542 543 void Randomgen() 544 { 545 // int luku = RandomGen.NextInt( 100 ); (pienempi kuin 100) 546 //int luku = RandomGen.NextInt( 50, 1000 ); (väliltä 50-999) 547 } 612 613 } 614 } 615 616 548 617 549 618 … … 562 631 } 563 632 } 564 class Vihu2 : PhysicsObject565 {566 private IntMeter elamaLaskuri = new IntMeter(1, 0, 1);567 public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }568 569 public Vihu2(double leveys, double korkeus)570 : base(leveys, korkeus)571 {572 elamaLaskuri.LowerLimit += delegate { this.Destroy(); };573 574 }575 } -
2013/24/EeroF/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1Content/FysiikkaPeli1Content.contentproj
r4123 r4159 171 171 </Compile> 172 172 </ItemGroup> 173 <ItemGroup> 174 <Compile Include="HamisNopea.png"> 175 <Name>HamisNopea</Name> 176 <Importer>TextureImporter</Importer> 177 <Processor>TextureProcessor</Processor> 178 </Compile> 179 </ItemGroup> 173 180 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 174 181 <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Note: See TracChangeset
for help on using the changeset viewer.