Changeset 1373 for 2010/30/samipunn/Misle Launch/Peli.cs
- Timestamp:
- 2010-07-28 14:53:12 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/30/samipunn/Misle Launch/Peli.cs
r1361 r1373 6 6 public class Peli : PhysicsGame 7 7 { 8 9 10 PhysicsObject ohjus; 8 double ohjusOdotus = 10.0; 9 10 Image maastonKuva = LoadImage("kentta"); 11 12 Timer Laskuri1; 13 Timer Laskuri2; 14 PhysicsObject laukaisualusta2; 15 PhysicsObject laukaisualusta1; 16 PhysicsObject ohjus1; 11 17 PhysicsObject ohjus2; 12 18 double kaantyyOikealle = 5; … … 14 20 protected override void Begin() 15 21 { 22 Laskuri1 = LuoAikaLaskuri(-150, 0); 23 Laskuri2 = LuoAikaLaskuri(150, 0); 24 25 26 laukaisualusta1 = PhysicsObject.CreateStaticObject (60, 20); 27 laukaisualusta1.Shape = Shapes.Rectangle; 28 laukaisualusta1.X = -400; 29 laukaisualusta1.Y = -377; 30 laukaisualusta1.Color = Color.Black; 31 Add(laukaisualusta1); 32 33 laukaisualusta2 = PhysicsObject.CreateStaticObject(60, 20); 34 laukaisualusta2.Shape = Shapes.Rectangle; 35 laukaisualusta2.X = 400; 36 laukaisualusta2.Y = -373; 37 laukaisualusta2.Color = Color.Black; 38 Add(laukaisualusta2); 39 40 41 Shape shape = Shapes.FromImage(1200, 400, maastonKuva); 42 PhysicsObject maasto = PhysicsObject.CreateStaticObject(1200, 400, shape ); 43 maasto.Y = Level.Bottom + maasto.Height / 2.5; 44 Add(maasto); 45 16 46 LuoReunat(); 17 47 Camera.ZoomToLevel(); 18 19 ohjus = new PhysicsObject(10, 40); 48 Camera.StayInLevel = true; 49 50 ohjus1 = LuoOhjus(-400, -340); 51 ohjus2 = LuoOhjus(400, -340); 52 53 54 55 AsetaOhjaimet(); 56 57 Painovoima(); 58 Ilmanvastus(); 59 } 60 61 private PhysicsObject LuoOhjus(double x, double y) 62 { 63 PhysicsObject ohjus = new PhysicsObject(10, 40); 20 64 ohjus.Shape = Shapes.Rectangle; 21 ohjus.X = -100;22 ohjus.Y = -0;65 ohjus.X = x; 66 ohjus.Y = y; 23 67 AddCollisionHandler(ohjus, Tormays); 24 68 Add(ohjus); 25 26 27 ohjus2 = new PhysicsObject(10, 40); 28 ohjus2.Shape = Shapes.Rectangle; 29 ohjus2.X = 100; 30 ohjus2.Y = 0; 31 AddCollisionHandler(ohjus2, Tormays2); 32 Add(ohjus2); 33 AsetaOhjaimet(); 34 35 Painovoima(); 36 Ilmanvastus(); 37 } 69 return ohjus; 70 } 71 private void nollaaOhjus(PhysicsObject ohjus, double x, double y) 72 { 73 ohjus.X = x; 74 ohjus.Y = y; 75 ohjus.Stop(); 76 ohjus.Angle = new Angle(); 77 Add(ohjus); 78 } 79 80 38 81 void AsetaOhjaimet() 39 82 { 40 Keyboard.Listen(Key.Z, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Vasemmalle", ohjus , kaantyyVasemmalle);41 Keyboard.Listen(Key.Z, ButtonState.Released, OhjusKaantyy, null, ohjus ,0.0);42 Keyboard.Listen(Key.A, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Oikealle", ohjus , kaantyyOikealle);43 Keyboard.Listen(Key.A, ButtonState.Released, OhjusKaantyy, null, ohjus ,0.0);83 Keyboard.Listen(Key.Z, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Vasemmalle", ohjus1, kaantyyVasemmalle); 84 Keyboard.Listen(Key.Z, ButtonState.Released, OhjusKaantyy, null, ohjus1,0.0); 85 Keyboard.Listen(Key.A, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Oikealle", ohjus1, kaantyyOikealle); 86 Keyboard.Listen(Key.A, ButtonState.Released, OhjusKaantyy, null, ohjus1,0.0); 44 87 45 88 Keyboard.Listen(Key.Up, ButtonState.Down, Ohjus2Kaantyy, "Kaanna Ohjusta2 Vasemmalle", ohjus2, kaantyyVasemmalle); … … 67 110 void Paivitys() 68 111 { 69 ohjus.Push(Vector.FromLengthAndAngle(1500, ohjus.Angle + Angle.RightAngle)); 70 ohjus2.Push(Vector.FromLengthAndAngle(1500, ohjus2.Angle + Angle.RightAngle)); 71 112 ohjus1.Push(Vector.FromLengthAndAngle(1500, ohjus1.Angle + Angle.RightAngle)); 113 ohjus2.Push(Vector.FromLengthAndAngle(1500, ohjus2.Angle + Angle.RightAngle)); 72 114 } 73 115 … … 75 117 { 76 118 Gravity = new Vector(0.0, -800.0); 77 78 119 } 79 120 80 121 void Ilmanvastus() 81 122 { 82 ohjus .LinearDamping = 0.9;123 ohjus1.LinearDamping = 0.9; 83 124 ohjus2.LinearDamping = 0.9; 84 125 } 85 126 protected override void Update(Time time) 86 127 { 87 Paivitys();88 base.Update(time);128 Paivitys(); 129 base.Update(time); 89 130 } 90 131 … … 97 138 void Tormays(PhysicsObject ohjus, PhysicsObject kohde) 98 139 { 99 ohjus.Destroy();140 Remove(ohjus); 100 141 Explosion rajahdys = new Explosion(60); 101 142 rajahdys.Position = ohjus.Position; … … 103 144 rajahdys.Force = 90; 104 145 Add(rajahdys); 105 106 107 } 108 109 void Tormays2(PhysicsObject ohjus, PhysicsObject kohde) 110 { 111 ohjus2.Destroy(); 112 Explosion rajahdys = new Explosion(60); 113 rajahdys.Position = ohjus2.Position; 114 rajahdys.Speed = 300.0; 115 rajahdys.Force = 90; 116 Add(rajahdys); 146 147 if (ohjus == ohjus1) 148 { 149 KaynnistaLaskuri(Laskuri1, ohjusOdotus); 117 150 } 118 119 DoubleMeter alaspainLaskuri; 120 121 void LuoAikaLaskuri() 122 { 123 alaspainLaskuri = new DoubleMeter(30); 124 125 Timer aikaLaskuri = new Timer(); 126 aikaLaskuri.Interval = 0.1; 127 aikaLaskuri.Trigger += LaskeAlaspain; 128 Add(aikaLaskuri); 129 aikaLaskuri.Start(); 130 131 Label aikaNaytto = new Label(); 132 aikaNaytto.TextColor = Color.White; 133 aikaNaytto.DecimalPlaces = 1; 134 aikaNaytto.BindTo(alaspainLaskuri); 135 Add(aikaNaytto); 151 if (ohjus == ohjus2) 152 { 153 KaynnistaLaskuri(Laskuri2, ohjusOdotus); 154 } 155 } 156 157 Timer LuoAikaLaskuri(double x, double y) 158 { 159 DoubleMeter alaspainLaskuri = new DoubleMeter(ohjusOdotus); 160 161 Timer aikaLaskuri = new Timer(); 162 aikaLaskuri.Interval = 0.1; 163 aikaLaskuri.Trigger += LaskeAlaspain; 164 aikaLaskuri.Tag = alaspainLaskuri; 165 Add(aikaLaskuri); 166 167 Label aikaNaytto = new Label(); 168 aikaNaytto.TextColor = Color.White; 169 aikaNaytto.DecimalPlaces = 1; 170 aikaNaytto.BindTo(alaspainLaskuri); 171 aikaNaytto.X = x; 172 aikaNaytto.Y = y; 173 Add(aikaNaytto); 174 175 return aikaLaskuri; 176 } 177 178 void KaynnistaLaskuri(Timer timer, double aikaaJaljella) 179 { 180 DoubleMeter alaspainLaskuri = (DoubleMeter)(timer.Tag); 181 alaspainLaskuri.Value = aikaaJaljella; 182 183 timer.Start(); 184 } 185 186 void LaskeAlaspain(Timer timer) 187 { 188 DoubleMeter alaspainLaskuri = (DoubleMeter)(timer.Tag); 189 alaspainLaskuri.Value -= 0.1; 190 191 if (alaspainLaskuri.Value <= 0) 192 { 193 194 timer.Stop(); 195 196 if (timer == Laskuri1) 197 { 198 nollaaOhjus(ohjus1, -400, -340); 199 } 200 201 if (timer == Laskuri2) 202 { 203 nollaaOhjus(ohjus2, 400, -340); 204 } 205 206 207 } 208 } 209 210 211 212 213 214 215 216 136 217 } 137 218 138 void LaskeAlaspain(Timer timer)139 {140 alaspainLaskuri.Value -= 0.1;141 142 if (alaspainLaskuri.Value <= 0)143 {144 MessageDisplay.Add("Aika loppui...");145 timer.Stop();146 147 // täydennä mitä tapahtuu, kun aika loppuu148 }149 }150 151 152 }153
Note: See TracChangeset
for help on using the changeset viewer.