Changeset 4628
- Timestamp:
- 2013-07-24 14:14:04 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/30/AleksiK/Hazy Maze Game/Hazy Maze Game/Hazy Maze Game/Hazy_Maze_Game.cs
r4579 r4628 11 11 PhysicsObject pelaaja; 12 12 PhysicsObject kolikko; 13 //PhysicsObject kolmeVihu; 14 15 Vector nopeusYlos = new Vector(0, 300); 16 Vector nopeusAlas = new Vector(0, -300); 17 Vector nopeusOikea = new Vector(300, 0); 18 Vector nopeusVasen = new Vector(-300, 0); 13 PhysicsObject Vihu; 14 PhysicsObject kolikkoBlock; 15 PhysicsObject maali; 16 PhysicsObject vaaSinBlock; 17 PhysicsObject vaaSinSwitch; 18 PhysicsObject tyonBlock; 19 PhysicsObject tyonTuho; 20 PhysicsObject tuhonTuho; 21 22 IntMeter kolikkoLaskuri; 23 24 Vector nopeusYlos = new Vector(0, 100); 25 Vector nopeusAlas = new Vector(0, -100); 26 Vector nopeusOikea = new Vector(100, 0); 27 Vector nopeusVasen = new Vector(-100, 0); 19 28 20 29 //X = StandardiPala 21 30 //P = Pelaaja 22 31 //C = Kolikko 23 //1 = 3 oikealle liikkuva vihollinen 32 //Luku = Luku + 2 oikealle liikkuva vihollinen 33 //Nappaimistön ylarivi (ei P) = Kirjaimen ylapuolella oleva luku + 2 alas liikkuva vihollinen 34 //B = Kolikkoblock 35 //M = Maali 36 //A = Vaaleansininen tuhottava block 37 //S = Vaaleasiniblockin tuhoaja 38 //N = Tyonnettava block 39 //V = Tyonblockin tuhokohde 40 //Z = Tyontuhon tuhokohde 24 41 25 42 static String[] rivit = { … … 31 48 "X X", 32 49 "X X", 33 "X CP XX",34 "X X", 35 "X X", 36 "X X", 37 "X X", 38 "X 1X",50 "X X", 51 "X X", 52 "X X", 53 "X X", 54 "X X", 55 "X X", 39 56 "X X", 40 57 "X X", … … 69 86 70 87 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 71 72 Level.BackgroundColor = Color.Black; 73 88 Level.Background.Color = Color.Black; 89 90 LuoKolikkoLaskuri(); 91 LuoMaailma(); 92 Ohjaus(); 93 } 94 95 public void Ohjaus() 96 { 97 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusYlos); 98 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 99 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusAlas); 100 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 101 102 Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusOikea); 103 Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 104 Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusVasen); 105 Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 106 } 107 108 public void LuoMaailma() 109 { 74 110 TileMap tiles = TileMap.FromStringArray(rivit); 75 111 tiles.SetTileMethod('X', LuoStandardiPala); 76 112 tiles.SetTileMethod('P', LuoPelaaja); 77 113 tiles.SetTileMethod('C', LuoKolikko); 78 tiles.SetTileMethod('1', LuoKolmeOikVihu); 114 tiles.SetTileMethod('B', LuoKolikkoBlock); 115 tiles.SetTileMethod('M', LuoMaali); 116 tiles.SetTileMethod('A', LuoVaaSinBlock); 117 tiles.SetTileMethod('S', LuoVaaSinSwitch); 118 tiles.SetTileMethod('N', LuoTyonBlock); 119 tiles.SetTileMethod('V', LuoTyonTuho); 120 tiles.SetTileMethod('Z', LuoTuhonTuho); 121 tiles.SetTileMethod('1', LuoVihu, 72.0, 0.0); 122 tiles.SetTileMethod('2', LuoVihu, 104.0, 0.0); 123 tiles.SetTileMethod('3', LuoVihu, 136.0, 0.0); 124 tiles.SetTileMethod('4', LuoVihu, 168.0, 0.0); 125 tiles.SetTileMethod('5', LuoVihu, 200.0, 0.0); 126 tiles.SetTileMethod('6', LuoVihu, 232.0, 0.0); 127 tiles.SetTileMethod('7', LuoVihu, 264.0, 0.0); 128 tiles.SetTileMethod('8', LuoVihu, 296.0, 0.0); 129 tiles.SetTileMethod('9', LuoVihu, 338.0, 0.0); 130 tiles.SetTileMethod('Q', LuoVihu, 0.0, 72.0); 131 tiles.SetTileMethod('W', LuoVihu, 0.0, 104.0); 132 tiles.SetTileMethod('E', LuoVihu, 0.0, 136.0); 133 tiles.SetTileMethod('R', LuoVihu, 0.0, 168.0); 134 tiles.SetTileMethod('T', LuoVihu, 0.0, 200.0); 135 tiles.SetTileMethod('Y', LuoVihu, 0.0, 232.0); 136 tiles.SetTileMethod('U', LuoVihu, 0.0, 264.0); 137 tiles.SetTileMethod('I', LuoVihu, 0.0, 296.0); 138 tiles.SetTileMethod('O', LuoVihu, 0.0, 338.0); 79 139 tiles.Execute(ruudunLeveys, ruudunKorkeus); 80 81 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusYlos); 82 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 83 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusAlas); 84 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 85 86 Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusOikea); 87 Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 88 Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusVasen); 89 Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 140 } 141 142 public void LuoKolikkoLaskuri() 143 { 144 kolikkoLaskuri = new IntMeter(0); 145 kolikkoLaskuri.MaxValue = 100; 90 146 } 91 147 … … 116 172 kolikko.Shape = Shape.Circle; 117 173 kolikko.Position = paikka; 174 kolikko.Restitution = 0.0; 118 175 Add(kolikko); 119 176 AddCollisionHandler(kolikko, "pelaaja", KerasitKolikon); 120 177 } 121 178 122 123 124 public void LuoKolmeOikVihu(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 125 { 126 PhysicsObject kolmeVihu = new PhysicsObject(30, 30); 127 kolmeVihu.Color = Color.Red; 128 kolmeVihu.Shape = Shape.Circle; 129 //kolmeVihu.Position = paikka; 130 Add(kolmeVihu); 131 AddCollisionHandler(kolmeVihu, "pelaaja", Kuolit); 132 133 List<Vector> polku = new List<Vector>(); 134 polku.Add(new Vector(paikka.X - 100, paikka.Y)); 135 polku.Add(new Vector(paikka.X + 100, paikka.Y)); 136 179 public void LuoKolikkoBlock(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 180 { 181 kolikkoBlock = PhysicsObject.CreateStaticObject(34, 34); 182 kolikkoBlock.Color = Color.Yellow; 183 kolikkoBlock.Position = paikka; 184 kolikkoBlock.Restitution = 0.0; 185 Add(kolikkoBlock); 186 } 187 188 public void LuoMaali(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 189 { 190 maali = PhysicsObject.CreateStaticObject(34, 34); 191 maali.Color = Color.AshGray; 192 maali.Position = paikka; 193 maali.Restitution = 0.0; 194 Add(maali); 195 AddCollisionHandler(maali, "pelaaja", TulitMaaliin); 196 } 197 198 public void LuoTyonBlock(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 199 { 200 tyonBlock = new PhysicsObject(34, 34); 201 tyonBlock.Color = Color.Lime; 202 tyonBlock.Position = paikka; 203 tyonBlock.Restitution = 0.0; 204 tyonBlock.Tag = "tyonBlock"; 205 Add(tyonBlock); 206 } 207 208 public void LuoTyonTuho(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 209 { 210 tyonTuho = PhysicsObject.CreateStaticObject(34, 34); 211 tyonTuho.Color = Color.LightPink; 212 tyonTuho.Position = paikka; 213 tyonTuho.Restitution = 0.0; 214 Add(tyonTuho); 215 AddCollisionHandler(tyonTuho, "tyonBlock", TyoTormasi); 216 } 217 218 public void LuoTuhonTuho(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 219 { 220 tuhonTuho = PhysicsObject.CreateStaticObject(34, 34); 221 tuhonTuho.Color = Color.Magenta; 222 tuhonTuho.Position = paikka; 223 tuhonTuho.Restitution = 0.0; 224 Add(tuhonTuho); 225 } 226 227 public void LuoVaaSinBlock(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 228 { 229 vaaSinBlock = PhysicsObject.CreateStaticObject(34, 34); 230 vaaSinBlock.Color = Color.LightBlue; 231 vaaSinBlock.Shape = Shape.Pentagon; 232 vaaSinBlock.Position = paikka; 233 vaaSinBlock.Restitution = 0.0; 234 Add(vaaSinBlock); 235 } 236 237 public void LuoVaaSinSwitch(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 238 { 239 vaaSinSwitch = PhysicsObject.CreateStaticObject(34, 34); 240 vaaSinSwitch.Color = Color.LightBlue; 241 vaaSinSwitch.Shape = Shape.Diamond; 242 vaaSinSwitch.Position = paikka; 243 vaaSinSwitch.Restitution = 0.0; 244 Add(vaaSinSwitch); 245 AddCollisionHandler(vaaSinSwitch, "pelaaja", OsuitVaaSinSwitch); 246 } 247 248 void TyoTormasi(PhysicsObject tormaaja, PhysicsObject kohde) 249 { 250 tormaaja.Destroy(); 251 kohde.Destroy(); 252 tuhonTuho.Destroy(); 253 } 254 255 void OsuitVaaSinSwitch(PhysicsObject tormaaja, PhysicsObject pelaaja) 256 { 257 vaaSinSwitch.Destroy(); 258 vaaSinBlock.Destroy(); 259 } 260 261 void KerasitKolikon(PhysicsObject kolikko, PhysicsObject pelaaja) 262 { 263 kolikko.Destroy(); 264 kolikkoLaskuri.Value += 1; 265 266 if (kolikkoLaskuri.Value == 20) 267 { 268 kolikkoBlock.Destroy(); 269 kolikkoLaskuri.Reset(); 270 } 271 272 } 273 274 void Kuolit(PhysicsObject tormaaja, PhysicsObject pelaaja) 275 { 276 pelaaja.Destroy(); 277 } 278 279 void TulitMaaliin(PhysicsObject tormaaja, PhysicsObject pelaaja) 280 { 281 pelaaja.Destroy(); 282 } 283 284 public void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus) 285 { 286 pelaaja.Velocity = nopeus; 287 } 288 289 public void LuoVihu(Vector paikka, double ruudunLeveys, double ruudunKorkeus, double r, double d) 290 { 291 Vihu = new PhysicsObject(30, 30); 292 Vihu.Color = Color.Red; 293 Vihu.Shape = Shape.Circle; 294 Vihu.Position = paikka; 295 Add(Vihu); 296 AddCollisionHandler(Vihu, "pelaaja", Kuolit); 297 LuoVihuAivot(paikka, r, d); 298 } 299 300 public void LuoVihuAivot(Vector paikka, double r, double d) 301 { 302 List<Vector> vihuPolku = new List<Vector>(); 303 vihuPolku.Add(new Vector(paikka.X + r, paikka.Y)); 304 vihuPolku.Add(new Vector(paikka.X, paikka.Y - d)); 305 137 306 PathFollowerBrain pfb = new PathFollowerBrain(); 138 pfb.Path = polku;139 kolmeVihu.Brain = pfb;307 pfb.Path = vihuPolku; 308 Vihu.Brain = pfb; 140 309 pfb.Active = true; 141 310 pfb.Loop = true; 142 pfb.Speed = 100; 143 } 144 145 146 void KerasitKolikon(PhysicsObject kolikko, PhysicsObject pelaaja) 147 { 148 kolikko.Destroy(); 149 } 150 151 void Kuolit(PhysicsObject kolmeVihu, PhysicsObject pelaaja) 152 { 153 pelaaja.Destroy(); 154 } 155 156 void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus) 157 { 158 pelaaja.Velocity = nopeus; 311 pfb.Speed = 125; 159 312 } 160 313 }
Note: See TracChangeset
for help on using the changeset viewer.