- Timestamp:
- 2010-07-08 14:56:25 (11 years ago)
- Location:
- 2010/27/juoshako/Br3ak 1t
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/27/juoshako/Br3ak 1t/Kentta.txt
r1175 r1193 30 30 = = 31 31 = = 32 = ===================================================32 =..................................................= -
2010/27/juoshako/Br3ak 1t/Peli.cs
r1175 r1193 1 1 using System; 2 2 using Jypeli; 3 using System.Collections.Generic; 3 4 using Jypeli.Widgets; 4 5 using Jypeli.Assets; 5 6 7 public class Laatta : PhysicsObject 8 { 9 private bool onkoJoOsuttukerran; 10 public bool OnkoJoOsuttuKerran 11 { 12 get { return onkoJoOsuttukerran; } 13 set { onkoJoOsuttukerran = value; } 14 } 15 public Laatta(double width, double height) 16 :base(width, height) 17 { 18 MakeStatic(); 19 } 20 } 21 22 6 23 public class Peli : PhysicsGame 7 24 { 25 8 26 const int ruudunLeveys = 50; 9 27 const int ruudunKorkeus = 50; … … 13 31 14 32 PhysicsObject maila; 15 33 PhysicsObject pallo; 34 35 IntMeter pisteLaskuri; 36 37 List<Label> valikonKohdat; 38 16 39 protected override void Begin() 17 40 { 18 //TODO: Alusta peli tässä 41 42 Valikko(); 43 44 } 45 void AloitaPeli() 46 { 47 ClearAll(); 48 19 49 LuoKentta(); 20 } 21 void LuoKentta() 22 { 23 maila = PhysicsObject.CreateStaticObject (300, 30); 50 LuoLaskuri(); 51 AsetaOhjaimet(); 52 //LuoMaila(); 53 54 Vector impulssi = new Vector(0.0, 500.0); 55 pallo.Hit(impulssi); 56 } 57 void Lopeta() 58 { 59 Exit(); 60 } 61 void LuoMaila() 62 { 63 maila = PhysicsObject.CreateStaticObject(300, 30); 24 64 //maila.Shape = Shapes.Circle; 25 65 maila.X = 0; 26 maila.Y = Level.Bottom -320;66 maila.Y = Level.Bottom + 100; 27 67 maila.CanRotate = false; 28 68 maila.KineticFriction = 1; 29 69 maila.Color = Color.Blue; 30 70 Add(maila); 31 71 } 72 void LuoKentta() 73 { 32 74 TileMap ruudut = TileMap.FromFile ("Kentta.txt"); 33 75 ruudut['='] = LuoPalikka; 34 ruudut['*'] = LuoTahti; 76 ruudut['*'] = LuoLaatta; 77 ruudut['.'] = LuoTiili; 35 78 ruudut.Insert (ruudunLeveys, ruudunKorkeus); 36 79 Camera.ZoomToLevel(); 37 80 38 PhysicsObjectpallo = new PhysicsObject(40, 40);81 pallo = new PhysicsObject(40, 40); 39 82 pallo.Shape = Shapes.Circle; 40 83 pallo.X = 0; 41 84 pallo.Y = Level.Bottom+110; 42 pallo.Color = Color. Aqua;85 pallo.Color = Color.Black; 43 86 Add (pallo); 44 87 88 LuoMaila(); 89 45 90 AddCollisionHandler(pallo, KasittelePallonTormays); 46 AsetaOhjaimet();47 48 Vector impulssi = new Vector(0.0, 1500.0);49 pallo.Hit(impulssi);50 91 } 51 92 PhysicsObject LuoPalikka() … … 53 94 PhysicsObject palikka = PhysicsObject.CreateStaticObject (50.0, 50.0); 54 95 palikka.Shape = Shapes.Rectangle; 55 palikka.Color = Color. Black;96 palikka.Color = Color.Gray; 56 97 palikka.Restitution = 1.0; 57 98 palikka.Tag = "palikka"; 58 99 return palikka; 59 100 } 60 PhysicsObject LuoTahti() 61 { 62 PhysicsObject tahti = PhysicsObject.CreateStaticObject(45.0, 45.0); 63 return tahti; 64 } 101 PhysicsObject LuoLaatta() 102 { 103 Laatta laatta = new Laatta(48.0, 48.0); 104 laatta.Tag = "laatta"; 105 return laatta; 106 } 107 PhysicsObject LuoTiili() 108 { 109 PhysicsObject tiili = PhysicsObject.CreateStaticObject(50.0, 50.0); 110 tiili.Tag = "tiili"; 111 tiili.Color = Color.Red; 112 tiili.Shape = Shapes.Rectangle; 113 return tiili; 114 } 115 116 65 117 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 66 118 { 67 if (kohde.Tag.ToString() == "palikka") 68 { 69 pallo.Color = Color.Red; 70 } 71 } 119 if (kohde.Tag.ToString() == "laatta") 120 { 121 bool tuhotaanko = ((Laatta)kohde).OnkoJoOsuttuKerran; 122 if (tuhotaanko) 123 { 124 Timer.SingleShot(0.1, kohde.Destroy); 125 pisteLaskuri.Value++; 126 } 127 else 128 { 129 ((Laatta)kohde).OnkoJoOsuttuKerran = true; 130 kohde.Color = Color.Gray; 131 } 132 133 134 } 135 if (kohde.Tag.ToString() == "tiili") 136 { 137 MessageDisplay.Add("Peli loppui"); 138 PeliPaattyi(); 139 } 140 141 } 142 72 143 void AsetaOhjaimet() 73 144 { 145 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon"); 74 146 Keyboard.Listen (Key.Left, ButtonState.Down, AsetaNopeus, "Liikuta mailaa vasemmalle", maila, nopeusVasemmalle); 75 147 Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); … … 77 149 Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 78 150 79 Keyboard.Listen (Key.Escape, ButtonState.Pressed, Exit, "Poistu");151 //Keyboard.Listen (Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 80 152 Keyboard.Listen (Key.F1, ButtonState.Down, ShowControlHelp, "Näytä ohjeet"); 81 153 } … … 96 168 97 169 } 170 void LuoLaskuri() 171 { 172 pisteLaskuri = new IntMeter(0); 173 Label pisteNaytto = new Label(); 174 pisteNaytto.X = Screen.Left + 100; 175 pisteNaytto.Y = Screen.Top -100; 176 pisteNaytto.TextColor = Color.Red; 177 178 pisteNaytto.BindTo(pisteLaskuri); 179 Add(pisteNaytto); 180 181 Label pisteTeksti = new Label("Pisteitä"); 182 pisteTeksti.X = Screen.Left + 50; 183 pisteTeksti.X = Screen.Top - 100; 184 pisteTeksti.TextColor = Color.Red; 185 Add(pisteTeksti); 186 187 IntMeter laskuri = new IntMeter(0); 188 laskuri.MaxValue = 120; 189 laskuri.UpperLimit += LaskuriYlarajassa; 190 } 191 void PeliPaattyi() 192 { 193 pallo.Destroy(); 194 maila.Destroy(); 195 } 196 void Valikko() 197 { 198 ClearAll(); 199 Mouse.IsCursorVisible = true; 200 valikonKohdat = new List<Label>(); 201 202 Label kohta1 = new Label("Aloita uusi peli"); 203 kohta1.Position = new Vector(0, 40); 204 valikonKohdat.Add(kohta1); 205 206 Label kohta2 = new Label("Lopeta"); 207 kohta2.Position = new Vector(0, -40); 208 valikonKohdat.Add(kohta2); 209 210 foreach (Label valikonKohta in valikonKohdat) 211 { 212 Add(valikonKohta); 213 } 214 Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null); 215 Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Lopeta, null); 216 217 Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); 218 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); 219 } 220 void ValikossaLiikkuminen(AnalogState hiirenTila) 221 { 222 foreach (Label kohta in valikonKohdat) 223 { 224 if (Mouse.IsCursorOn(kohta)) 225 { 226 kohta.TextColor = Color.Red; 227 } 228 else 229 { 230 kohta.TextColor = Color.Black; 231 } 232 } 233 } 234 void LaskuriYlarajassa(int arvo) 235 { 236 MessageDisplay.TextColor = Color.White; 237 MessageDisplay.Add("Pääsit kentän läpi!"); 238 } 98 239 99 240 }
Note: See TracChangeset
for help on using the changeset viewer.