- Timestamp:
- 2010-08-04 15:05:43 (13 years ago)
- Location:
- 2010/31/vinekova/Tankkipeli1
- Files:
-
- 2 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/31/vinekova/Tankkipeli1/Peli.cs
r1560 r1611 3 3 using Jypeli.Widgets; 4 4 using Jypeli.Assets; 5 using Jypeli.Effects; 6 using System.Collections.Generic; 7 5 8 6 9 public class Tankkipeli : PhysicsGame 7 10 { 11 PhysicsObject vasenReuna; 12 PhysicsObject alaReuna; 13 IntMeter kenttaLaskuri; 8 14 Tank tankki; 15 Tank tankki2; 16 PlasmaCannon plazma; 17 List<Label> valikonKohdat; 18 const int ruudunLeveys = 50; 19 const int ruudunKorkeus = 50; 20 DoubleMeter voimaMittari; 21 22 9 23 10 24 protected override void Begin() 11 25 { 12 LuoKentta(); 26 Camera.ZoomToLevel(); 27 IsFullScreen = true; 28 Valikko(); 29 voimaMittari = new DoubleMeter(10); 30 voimaMittari.MaxValue = 10; 31 BarGauge voimaPalkki = new BarGauge(20, 150); 32 voimaPalkki.BindTo(voimaMittari); 33 Add(voimaPalkki); 34 35 voimaPalkki.X = (0.8 * Screen.RightSafe); 36 voimaPalkki.Y = (0.8 * Screen.TopSafe); 37 voimaPalkki.BarColor = Color.Green; 38 voimaPalkki.BorderColor = Color.White; 39 voimaPalkki.Angle = Angle.Degrees(90); 40 41 // Kun voima loppuu, kutsutaan VoimaLoppui-aliohjelmaa 42 voimaMittari.LowerLimit += VoimaLoppui; 43 44 Keyboard.Listen(Key.Space, ButtonState.Pressed, VahennaVoimia, "Vähennä pelaajan voimia"); 45 } 46 47 void Valikko() 48 { 49 ClearAll(); 50 valikonKohdat = new List<Label>(); 51 52 Label kohta1 = new Label("Aloita peli"); 53 kohta1.Position = new Vector(0, 40); 54 valikonKohdat.Add(kohta1); 55 56 Label kohta2 = new Label("Lopeta peli"); 57 kohta2.Position = new Vector(0, -40); 58 valikonKohdat.Add(kohta2); 59 60 foreach (Label valikonKohta in valikonKohdat) 61 { 62 Add(valikonKohta); 63 } 64 65 Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null); 66 Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Lopeta, null); 67 68 Mouse.IsCursorVisible = true; 69 Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); 70 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); 71 } 72 73 void VahennaVoimia() 74 { 75 voimaMittari.Value--; 76 } 77 78 void VoimaLoppui(double mittarinArvo) 79 { 80 MessageDisplay.Add("Voimat loppuivat, voi voi."); 81 } 82 83 84 void ValikossaLiikkuminen(AnalogState hiirenTila) 85 { 86 foreach (Label kohta in valikonKohdat) 87 { 88 if (Mouse.IsCursorOn(kohta)) 89 { 90 kohta.TextColor = Color.Red; 91 } 92 else 93 { 94 kohta.TextColor = Color.White; 95 } 96 97 } 98 } 99 100 void AloitaPeli() 101 { 102 ClearAll(); 103 SeuraavaKentta(1); 13 104 AsetaOhjaimet(); 14 15 } 16 17 void LuoKentta() 18 { 19 Gravity = new Vector(0, -400); 20 Level.CreateBorders(); 21 LuoTankki(); 22 Camera.ZoomToLevel(); 23 } 105 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon"); 106 } 107 108 void Lopeta() 109 { 110 Exit(); 111 } 112 113 114 void LuoKentta1() 115 { 116 Shape muoto = Shapes.FromImage(LoadImage("TankkiKenttä1")); 117 PhysicsObject maasto = PhysicsObject.CreateStaticObject(Level.Width, 300, muoto); 118 GameObject maastokuva = new GameObject(Level.Width, -300); 119 maastokuva.Image = LoadImage("TankkiKenttä1"); 120 maasto.Add(maastokuva); 121 Add(maasto); 122 maasto.Y = 800; 123 } 124 125 void LuoKentta2() 126 { 127 Level.CreateGround(10, 100, 20, LoadImage("TankkiKenttä2")); 128 } 129 130 void LuoKentta3() 131 { 132 Level.CreateGround(10, 100, 20, LoadImage("TankkiKenttä3")); 133 } 134 135 void TankkiTormasi(PhysicsObject kissa, PhysicsObject kohde) 136 { 137 if (kohde == vasenReuna) 138 { 139 kenttaLaskuri.Value++; 140 SeuraavaKentta(kenttaLaskuri.Value); 141 } 142 if (kohde == alaReuna) 143 { 144 SeuraavaKentta(kenttaLaskuri.Value); 145 } 146 147 } 148 149 24 150 25 151 void LuoTankki() 26 152 { 27 tankki = new Tank(100, 40);28 tankki.Y = Level.Bottom + 40;153 tankki = new Tank(100, 50); 154 tankki.Y = Level.Bottom + 50; 29 155 Add(tankki); 156 157 tankki.Cannon.Power.Value = 1000; 158 tankki.Cannon.CannonBallCollision = KuulaOsuu; 159 160 plazma = new PlasmaCannon(25, 15); 161 tankki.Add(plazma); 162 163 // tankki.Add(gannon); 164 165 tankki2 = new Tank(100, 50); 166 tankki2.Y = Level.Bottom + 50; 167 tankki2.X += 70; 168 Add(tankki2); 169 170 tankki2.Cannon.Power.Value = 1000; 171 tankki2.Cannon.CannonBallCollision = KuulaOsuu; 30 172 } 31 173 … … 34 176 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 35 177 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 36 Keyboard.Listen(Key.Left, ButtonState.Down, Aja, "Liiku vasemmalle", tankki, 1.0); 37 Keyboard.Listen(Key.Right, ButtonState.Down, Aja, "Liiku oikealle", tankki, -1.0); 38 Keyboard.Listen(Key.Up, ButtonState.Down, KaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1)); 39 Keyboard.Listen(Key.Down, ButtonState.Down, KaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1)); 40 41 178 Keyboard.Listen(Key.A, ButtonState.Down, Aja, "Liiku vasemmalle", tankki, 1.0); 179 Keyboard.Listen(Key.D, ButtonState.Down, Aja, "Liiku oikealle", tankki, -1.0); 180 Keyboard.Listen(Key.W, ButtonState.Down, KaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1)); 181 Keyboard.Listen(Key.S, ButtonState.Down, KaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1)); 182 Keyboard.Listen(Key.LeftControl, ButtonState.Down, Laukaus, "Ammu"); 183 184 185 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 186 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 187 Keyboard.Listen(Key.J, ButtonState.Down, Aja, "Liiku vasemmalle", tankki2, 1.0); 188 Keyboard.Listen(Key.L, ButtonState.Down, Aja, "Liiku oikealle", tankki2, -1.0); 189 Keyboard.Listen(Key.I, ButtonState.Down, KaannaPutkea, "Käännä putkea vastapäivään", tankki2, Angle.Degrees(1)); 190 Keyboard.Listen(Key.K, ButtonState.Down, KaannaPutkea, "Käännä putkea myötäpäivään", tankki2, Angle.Degrees(-1)); 191 Keyboard.Listen(Key.RightControl, ButtonState.Down, Laukaus2, "Ammu"); 192 } 42 193 43 } 194 44 195 45 196 void Aja(Tank t, double vaanto) … … 60 211 } 61 212 213 214 void Laukaus() 215 { 216 plazma.Shoot(); 217 218 plazma.Use(); 219 220 tankki.Cannon.Power.Value = 20000; 221 tankki.Cannon.Use(); 222 } 223 224 void Laukaus2() 225 { 226 plazma.Shoot(); 227 228 plazma.Use(); 229 230 tankki2.Cannon.Power.Value = 20000; 231 tankki2.Cannon.Use(); 232 } 233 234 void SeuraavaKentta(int kentanNro) 235 { 236 ClearAll(); 237 238 kenttaLaskuri = new IntMeter(kentanNro); 239 240 vasenReuna = Level.CreateLeftBorder(); 241 Level.CreateRightBorder(); 242 alaReuna = Level.CreateBottomBorder(); 243 Level.CreateTopBorder(); 244 245 if (kenttaLaskuri.Value == 1) LuoKentta1(); 246 else if (kenttaLaskuri.Value == 2) LuoKentta2(); 247 else if (kenttaLaskuri.Value == 3) LuoKentta3(); 248 else if (kenttaLaskuri.Value > 3) Exit(); 249 250 Gravity = new Vector(1.0, -400); 251 LuoTankki(); 252 Camera.ZoomToLevel(); 253 254 } 255 256 62 257 }
Note: See TracChangeset
for help on using the changeset viewer.