Changeset 1664 for 2010/31/kirsipienmaki@gmail.com/FysiikkaPeli3/Peli.cs
- Timestamp:
- 2010-08-06 13:00:20 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/31/kirsipienmaki@gmail.com/FysiikkaPeli3/Peli.cs
r1622 r1664 3 3 using Jypeli.Widgets; 4 4 using Jypeli.Assets; 5 using Physics2DDotNet.Ignorers; 5 6 6 7 public class Peli : PhysicsGame 7 8 { 9 Image taloKuva = LoadImage("Talo"); 8 10 Image matoKuva = LoadImage("Tappajamato1"); 9 11 Image taustaKuva = LoadImage("Kuutamo"); 10 12 PhysicsObject tappajaMato; 11 PhysicsObject seinä; 12 PhysicsObject seinä2; 13 Image vihu1kuva = LoadImage("Vihu1"); 14 15 Vector downforce = new Vector(0, 9999); 16 ObjectIgnorer ignorer = new ObjectIgnorer(); 17 13 18 protected override void Begin() 14 19 { 15 PhysicsObject maasto = Level.CreateGround(450, 4 00, 10, Color.Black);16 maasto.IgnoresCollisionResponse = true;20 PhysicsObject maasto = Level.CreateGround(450, 440, 10, Color.Black); 21 maasto.IgnoresCollisionResponse = false; 17 22 Level.Background.Image = taustaKuva; 18 23 Level.Background.FitToLevel(); 19 24 LuoTappajaMato(); 20 25 ohjaus(); 21 Camera.Follow( tappajaMato);22 Camera.Zoom (1.9);26 Camera.Follow(tappajaMato); 27 Camera.ZoomToLevel(); 23 28 Level.CreateBorders(); 24 luoseinä(); 25 Gravity = new Vector( 0.0, -800.0 ); 26 luoseinä2(); 27 29 Gravity = new Vector(0.0, -800.0); 30 luotalot(); 31 maasto.CollisionIgnorer = ignorer; 32 tappajaMato.CollisionIgnorer = ignorer; 33 luovihu1(); 28 34 } 29 30 35 void luotalot() 36 { 37 PhysicsObject Talo = new PhysicsObject(90, 220); 38 Talo.Shape = Shapes.Rectangle; 39 Talo.Mass = 10.0; 40 Talo.Image = taloKuva; 41 Talo.Y = 150; 42 Talo.X = RandomGen.NextDouble(Level.Left, Level.Right); 43 Add(Talo); 44 } 31 45 void LuoTappajaMato() 32 46 { 33 tappajaMato = new PhysicsObject(90, 40);47 tappajaMato = new PhysicsObject(90, 40); 34 48 tappajaMato.Shape = Shapes.Rectangle; 35 49 tappajaMato.Mass = 10.0; … … 37 51 tappajaMato.Y = -200; 38 52 tappajaMato.IgnoresGravity = true; 39 tappajaMato.IgnoresCollisionResponse =true;40 53 Add(tappajaMato); 41 54 tappajaMato.LinearDamping = 0.9; … … 43 56 AddCollisionHandler(tappajaMato, matoTormasi); 44 57 Timer ajastin = new Timer(); 45 ajastin.Interval = 1.5;46 ajastin.Trigger += tar ikistamadonpaikka;58 ajastin.Interval = 0.1; 59 ajastin.Trigger += tarkistamadonpaikka; 47 60 ajastin.Start(); 48 61 } 49 62 50 63 51 64 52 65 void matoTormasi(PhysicsObject mato, PhysicsObject kohde) 53 66 { 54 if (kohde == seinä)55 {56 tappajaMato.IgnoresGravity = false;57 Vector impulssi = Vector.FromLengthAndAngle(9989.0, tappajaMato.Angle);58 tappajaMato.Hit(impulssi);59 MessageDisplay.Add("Mato osui seinään");60 }61 67 } 62 68 … … 65 71 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 66 72 67 Keyboard.Listen(Key.Left, ButtonState.Down, Kaannamatoa, null, tappajaMato, 0. 9);68 Keyboard.Listen(Key.Right, ButtonState.Down, Kaannamatoa, null, tappajaMato, -0. 9);69 Keyboard.Listen(Key.Up, ButtonState.Down, Liikutamatoa, null, tappajaMato, 73 Keyboard.Listen(Key.Left, ButtonState.Down, Kaannamatoa, null, tappajaMato, 0.3); 74 Keyboard.Listen(Key.Right, ButtonState.Down, Kaannamatoa, null, tappajaMato, -0.3); 75 Keyboard.Listen(Key.Up, ButtonState.Down, Liikutamatoa, null, tappajaMato, 100.0); 70 76 } 71 77 72 78 73 79 void Kaannamatoa(PhysicsObject tappajaMato, double kaantoNopeus) 74 80 { 75 tappajaMato.AngularVelocity += kaantoNopeus;81 tappajaMato.AngularVelocity += kaantoNopeus; 76 82 } 77 83 … … 81 87 tappajaMato.Hit(impulssi); 82 88 } 83 void luoseinä()89 void tarkistamadonpaikka(Timer sender) 84 90 { 85 seinä = new PhysicsObject(Level.Width, 02); 86 seinä.Shape = Shapes.Rectangle; 87 Add(seinä); 91 92 if (tappajaMato.Y > Level.Center.Y && tappajaMato.Y < 50 && tappajaMato.Velocity.Y > 0) 93 { 94 tappajaMato.IgnoresGravity = false; 95 tappajaMato.Hit(downforce); 96 } 97 if (tappajaMato.Y < Level.Center.Y) 98 { 99 tappajaMato.IgnoresGravity = true; 100 } 88 101 } 89 void luo seinä2()102 void luovihu1() 90 103 { 91 seinä2 = new PhysicsObject(Level.Width, 02); 92 seinä2.Shape = Shapes.Rectangle; 93 Add(seinä2); 94 seinä2.Y = -390; 95 } 96 void tarikistamadonpaikka(Timer sender) 97 { 98 104 PhysicsObject Vihu1 = new PhysicsObject(20, 13); 105 Vihu1.Shape = Shapes.Rectangle; 106 Vihu1.Mass = 10.0; 107 Vihu1.Image = vihu1kuva; 108 Vihu1.Y = 147; 109 Vihu1.X = RandomGen.NextDouble(Level.Left, Level.Right); 110 Add(Vihu1); 111 for (int i = 0; i < 30; i++) 112 { 113 Add(Vihu1); 114 } 99 115 } 100 116 }
Note: See TracChangeset
for help on using the changeset viewer.