- Timestamp:
- 2011-06-09 09:21:39 (12 years ago)
- Location:
- 2011/23/iltakuop/Blocks/Blocks/Blocks
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
2011/23/iltakuop/Blocks/Blocks/Blocks/Blocks.csproj
r1751 r1791 116 116 </ItemGroup> 117 117 <ItemGroup> 118 <Content Include="kenttarandom.txt"> 119 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 120 </Content> 118 121 <Content Include="kentta3.txt"> 119 122 <CopyToOutputDirectory>Always</CopyToOutputDirectory> -
2011/23/iltakuop/Blocks/Blocks/Blocks/Peli.cs
r1761 r1791 12 12 public int hitPoints = 2; 13 13 public Taso2() 14 : base(40, 10)14 : base(40, 10) 15 15 { 16 16 MakeStatic(); … … 27 27 { 28 28 int mailanNopeus = 600; 29 int pallonNopeus = 300; 30 int äläLuoPalloa = 0; 29 31 //Vector nopeusVasen = new Vector(-600, 0); 30 32 … … 44 46 Image taso2Kuva = LoadImage("Vahvistettu palikka"); 45 47 Image taso2Kuva2 = LoadImage("Vahvistettu palikka2"); 46 Image taustaKuva = LoadImage("taustakuva"); 48 Image tasoTuhoutumatonKuva = LoadImage("Tuhoutumaton"); 49 Image tasoTuhoutumatonKuvaPysty = LoadImage("TuhoutumatonPysty"); 50 Image taustaKuva = LoadImage("Taustakuva1"); 51 Image taustaKuva2 = LoadImage("Taustakuva2"); 52 Image taustaKuva3 = LoadImage("Taustakuva3"); 53 Image mailanKuva = LoadImage("Maila"); 47 54 int pisteet; 48 55 int elämät = 3; 56 int randomKentät = 0; 49 57 IntMeter pisteetL; 50 58 IntMeter elämätL; 59 60 Label päälläPois; 51 61 52 62 List<Label> valikonKohdat; … … 54 64 List<PhysicsObject> taso2t = new List<PhysicsObject>(); 55 65 List<PhysicsObject> tntt = new List<PhysicsObject>(); 66 List<PhysicsObject> tasoTuhoutumatont = new List<PhysicsObject>(); 56 67 57 68 public override void Begin() … … 62 73 void Valikko() 63 74 { 75 äläLuoPalloa = 1; 64 76 ClearAll(); 77 Level.Background.Image = taustaKuva3; 78 Level.Background.Size = new Vector(Screen.Width, Screen.Height); 79 Camera.ZoomToLevel(1); 80 65 81 valikonKohdat = new List<Label>(); 66 82 … … 77 93 valikonKohdat.Add(kohta3); 78 94 95 Label kohta4 = new Label("Ohjeet"); 96 kohta4.Position = new Vector(80, 40); 97 valikonKohdat.Add(kohta4); 98 79 99 foreach (Label valikonKohta in valikonKohdat) 80 100 { … … 85 105 Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Asetukset, null); 86 106 Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Lopeta, null); 107 Mouse.ListenOn(kohta4, MouseButton.Left, ButtonState.Pressed, Ohjeet, null); 87 108 88 109 Mouse.IsCursorVisible = true; … … 107 128 } 108 129 130 void ValikossaLiikkuminen2(AnalogState hiirenTila) 131 { 132 foreach (Label kohta in valikonKohdat) 133 { 134 if (Mouse.IsCursorOn(kohta)) 135 { 136 kohta.TextColor = Color.Red; 137 } 138 else 139 { 140 kohta.TextColor = Color.White; 141 } 142 143 } 144 } 145 146 109 147 void AloitaPeli() 110 148 { 111 149 ClearAll(); 150 äläLuoPalloa = 0; 151 nollaaPisteet(); 112 152 LuoKenttä(1); 113 153 AsetaOhjaimet(); … … 116 156 } 117 157 158 void nollaaPisteet() 159 { 160 kenttäNro = 1; 161 pisteet = 0; 162 elämät = 3; 163 } 164 118 165 void Lopeta() 119 166 { … … 121 168 } 122 169 170 void Ohjeet() 171 { 172 173 } 174 123 175 void Asetukset() 124 176 { 125 177 ClearAll(); 178 179 Level.Background.Image = taustaKuva2; 180 Level.Background.Size = new Vector(Screen.Width, Screen.Height); 181 Camera.ZoomToLevel(1); 182 126 183 valikonKohdat = new List<Label>(); 127 184 … … 129 186 kohta1.Position = new Vector(-80, 40); 130 187 valikonKohdat.Add(kohta1); 188 kohta1.TextColor = Color.White; 131 189 132 190 Label kohta2 = new Label("Mailan nopeus"); 133 191 kohta2.Position = new Vector(-80, -40); 134 192 valikonKohdat.Add(kohta2); 193 kohta2.TextColor = Color.White; 135 194 136 195 Label kohta3 = new Label("Takaisin"); 137 196 kohta3.Position = new Vector(80, -40); 138 197 valikonKohdat.Add(kohta3); 198 kohta3.TextColor = Color.White; 199 200 Label kohta4 = new Label("Satunaiset kentät"); 201 kohta4.TextColor = Color.White; 202 203 if (randomKentät == 1) 204 { 205 päälläPois = new Label("Päällä"); 206 } 207 else { päälläPois = new Label("Pois päältä"); } 208 kohta4.Position = new Vector(100, 40); 209 päälläPois.Position = new Vector(70, 15); 210 päälläPois.TextColor = Color.White; 211 valikonKohdat.Add(päälläPois); 212 Add(kohta4); 139 213 140 214 foreach (Label valikonKohta in valikonKohdat) … … 146 220 Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, AsetaMailanNopeus, null); 147 221 Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Valikko, null); 222 Mouse.ListenOn(päälläPois, MouseButton.Left, ButtonState.Pressed, satunaisetKentät, null); 148 223 149 224 Mouse.IsCursorVisible = true; 150 Mouse.ListenMovement(1.0, ValikossaLiikkuminen , null);225 Mouse.ListenMovement(1.0, ValikossaLiikkuminen2, null); 151 226 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); 227 } 228 229 void satunaisetKentät() 230 { 231 if (randomKentät == 1) 232 { 233 randomKentät = 0; 234 } 235 else 236 { 237 randomKentät = 1; 238 } 239 Asetukset(); 152 240 } 153 241 … … 160 248 } 161 249 162 163 250 void AsetaMailanNopeus() 164 251 { … … 167 254 Add(kysymysIkkuna); 168 255 } 169 256 170 257 void KäsitteleAsetukset(InputWindow ikkuna) 171 258 { … … 173 260 { 174 261 int vastaus = int.Parse(ikkuna.InputBox.Text); 175 } 176 catch (FormatException f) 262 pallonNopeus = vastaus; 263 } 264 catch (FormatException) 177 265 { 178 266 ClearAll(); … … 183 271 } 184 272 } 273 185 274 void KäsitteleAsetukset2(InputWindow ikkuna) 186 275 { … … 190 279 mailanNopeus = vastaus; 191 280 } 192 catch (FormatException f)281 catch (FormatException) 193 282 { 194 283 ClearAll(); … … 200 289 } 201 290 202 203 291 PhysicsObject LuoPallo() //-170 204 292 { 205 PhysicsObject pallo1 = new PhysicsObject( 20.0, 20.0);293 PhysicsObject pallo1 = new PhysicsObject(18.0, 18.0); 206 294 pallo1.Shape = Shape.Circle; 207 pallo1.Color = Color. Blue;295 pallo1.Color = Color.LightGreen; 208 296 pallo1.Tag = "pallo"; 209 297 pallo1.Restitution = 1.0; 210 298 pallo1.X = 0; 211 pallo1.Y = -1 70;299 pallo1.Y = -168; 212 300 palloolemassa = 1; 213 301 return pallo1; 214 302 } 215 216 303 217 304 void LuoKenttä(int a) 218 305 { … … 220 307 LuoPalikat(a); 221 308 Level.Background.Image = taustaKuva; 222 Level.Background. FitToLevel();309 Level.Background.Size = new Vector(Screen.Width, Screen.Height); 223 310 224 311 Camera.ZoomToLevel(1); … … 232 319 pallo.Destroy(); 233 320 } 234 pallo = LuoPallo(); 235 236 AddCollisionHandler(pallo, KäsittelePallonTörmäys); 237 Add(pallo); 238 } 239 240 321 if (äläLuoPalloa == 0) 322 { 323 pallo = LuoPallo(); 324 AddCollisionHandler(pallo, KäsittelePallonTörmäys); 325 Add(pallo); 326 } 327 } 328 241 329 void AsetaOhjaimet() 242 330 { … … 250 338 Keyboard.Listen(Key.T, ButtonState.Pressed, AloitaPeliUudestaan, "Liikuta mailaa vasemmalle"); 251 339 Keyboard.Listen(Key.R, ButtonState.Pressed, DebugRäjäytys, "Liikuta mailaa vasemmalle"); 252 340 253 341 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 254 342 Keyboard.Listen(Key.F2, ButtonState.Pressed, SeuraavaTaso, "Näytä ohjeet"); 255 343 256 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 257 258 259 } 260 void DebugRäjäytys() { Räjähdys(tnt.Position); } 344 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon"); 345 346 347 } 348 349 void DebugRäjäytys() { Räjähdys(tnt.Position); } 261 350 262 351 void LisääLaskurit(int elämät, int pisteet) 263 352 { 264 pisteetL = LuoPisteLaskuri(Screen.Left + 1 00.0, Screen.Top - 80.0, pisteet);353 pisteetL = LuoPisteLaskuri(Screen.Left + 180.0, Screen.Top - 80.0, pisteet); 265 354 elämätL = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 80.0, elämät); 355 Label tekstikentta = new Label("Palloja jäljellä: "); 356 tekstikentta.X = Screen.Right - 180; 357 tekstikentta.Y = Screen.Top - 80; 358 tekstikentta.TextColor = Color.White; 359 Label tekstikentta2 = new Label("Pisteet: "); 360 tekstikentta2.X = Screen.Left + 100.0; 361 tekstikentta2.Y = Screen.Top - 80; 362 tekstikentta2.TextColor = Color.White; 363 364 Add(tekstikentta2); 365 Add(tekstikentta); 266 366 } 267 367 … … 278 378 } 279 379 280 281 380 void KäsittelePallonTörmäys(PhysicsObject pallo, PhysicsObject kohde) 282 381 { 283 if (kohde == alaReuna) 284 { 285 pallo.Destroy(); 286 palloolemassa = 0; 287 elämät -= 1; 288 if (elämät == 0) 289 { 290 HävisitPelin(); 291 } 292 else Timer.SingleShot(1, AloitaPeliUudestaan); 293 } 294 if (kohde.Tag.ToString() == "taso") 295 { 296 pisteet += 100; 382 if (kohde == alaReuna) 383 { 384 pallo.Destroy(); 385 palloolemassa = 0; 386 elämät -= 1; 387 if (elämät == 0) 388 { 389 HävisitPelin(); 390 } 391 else Timer.SingleShot(1, AloitaPeliUudestaan); 392 } 393 if (kohde.Tag.ToString() == "taso") 394 { 395 pisteet += 100; 396 Timer.SingleShot(0.01, kohde.Destroy); 397 tasot.Remove(kohde); 398 TarkistaVoitto(); 399 } 400 if (kohde.Tag.ToString() == "taso2") 401 { 402 Taso2 taso2 = (Taso2)kohde; 403 taso2.hitPoints--; 404 if (taso2.hitPoints == 1) 405 { taso2.Image = taso2Kuva2; } 406 else if (taso2.hitPoints == 0) 407 { 297 408 Timer.SingleShot(0.01, kohde.Destroy); 298 tasot.Remove(kohde); 299 TarkistaVoitto(); 300 } 301 if (kohde.Tag.ToString() == "taso2") 302 { 303 Taso2 taso2 = (Taso2)kohde; 304 taso2.hitPoints--; 305 if (taso2.hitPoints == 1) 306 { taso2.Image = taso2Kuva2; } 307 else if (taso2.hitPoints == 0) 308 { 309 Timer.SingleShot(0.01, kohde.Destroy); 310 pisteet += 300; 311 } 312 taso2t.Remove(kohde); 313 TarkistaVoitto(); 314 } 315 if (kohde.Tag.ToString() == "TNT") 316 { 317 pisteet += 100; 318 Räjähdys(kohde.Position); 319 Timer.SingleShot(0.01, kohde.Destroy); 320 TarkistaVoitto(); 321 } 322 pisteetL.Value = pisteet; 323 elämätL.Value = elämät; 324 325 } 409 pisteet += 300; 410 } 411 taso2t.Remove(kohde); 412 TarkistaVoitto(); 413 } 414 if (kohde.Tag.ToString() == "TNT") 415 { 416 pisteet += 100; 417 Räjähdys(kohde.Position); 418 Timer.SingleShot(0.01, kohde.Destroy); 419 TarkistaVoitto(); 420 } 421 pisteetL.Value = pisteet; 422 elämätL.Value = elämät; 423 424 } 425 326 426 void TarkistaVoitto() 327 427 { 328 if ((tasot.Count == 0) && (tntt.Count == 0)) 329 { 330 Timer.SingleShot(1, SeuraavaTaso); 331 } 332 } 428 if ((tasot.Count == 0) && (taso2t.Count == 0) && (tntt.Count == 0)) 429 { 430 SeuraavaTaso(); 431 } 432 433 } 434 333 435 void SeuraavaTaso() 334 436 { 335 437 tasot.Clear(); 336 438 tntt.Clear(); 439 taso2t.Clear(); 337 440 kenttäNro += 1; 338 441 if (kenttäNro > kenttäMäärä) 339 442 { 340 443 ClearAll(); 341 Label tekstikentta = new Label("Voitit ");444 Label tekstikentta = new Label("Voitit, onneksi olkoon! Sait " + pisteet + " pistettä!"); 342 445 Add(tekstikentta); 343 Timer.SingleShot( 5, Exit);446 Timer.SingleShot(2, Exit); 344 447 } 345 448 else … … 348 451 Label tekstikentta = new Label("Pääsit seuraavaan tasoon"); 349 452 Add(tekstikentta); 350 Timer.SingleShot(2, SeuraavaTaso2); 351 } 352 353 } 453 Timer.SingleShot(1.5, SeuraavaTaso2); 454 } 455 456 } 457 354 458 void SeuraavaTaso2() 355 459 { … … 363 467 void Räjähdys(Vector kohde) 364 468 { 365 469 366 470 Explosion rajahdys = new Explosion(10); 367 471 rajahdys.Position = kohde; … … 372 476 //for(int i = 0; i<tasot.Count; i++) 373 477 int i = 0; 374 while (i<tasot.Count)375 { 376 if (((tasot[i].X - kohde.X) < 100) && ((tasot[i].X - kohde.X) > -100) 478 while (i < tasot.Count) 479 { 480 if (((tasot[i].X - kohde.X) < 100) && ((tasot[i].X - kohde.X) > -100) 377 481 && ((tasot[i].Y - kohde.Y) < 80) && ((tasot[i].Y - kohde.Y) > -80)) 378 482 { … … 404 508 } 405 509 int o = 0; 406 while (o <tntt.Count)510 while (o < tntt.Count) 407 511 { 408 512 if (((tntt[o].X - kohde.X) < 100) && ((tntt[o].X - kohde.X) > -100) … … 415 519 pisteetL.Value = pisteet; 416 520 Räjähdys(räjähdysPaikka); 417 521 418 522 } 419 523 else … … 424 528 } 425 529 426 427 428 530 void LuoPalikat(int x) 429 531 { 430 431 TileMap kentta = TileMap.FromFile("kentta" + x + ".txt"); 432 kentta['#'] = lisaaTaso; 433 kentta['!'] = lisaaTaso2; 434 kentta['*'] = lisaaTNT; 435 kentta['m'] = LuoMaila; 436 kentta['-'] = LuoReunat; 437 kentta['_'] = LuoAlaReuna; 438 kentta['y'] = LuoYläReuna; 439 kentta.Insert(40, 40); 532 533 if (randomKentät == 0) 534 { 535 TileMap kentta = TileMap.FromFile("kentta" + x + ".txt"); 536 kentta['#'] = lisaaTaso; 537 kentta['!'] = lisaaTaso2; 538 kentta['p'] = lisaaPystyTaso; 539 kentta['P'] = lisaaPystyTasoTuhoutumaton; 540 kentta['*'] = lisaaTNT; 541 kentta['T'] = lisaaTasoTuhoutumaton; 542 kentta['m'] = LuoMaila; 543 kentta['-'] = LuoReunat; 544 kentta['_'] = LuoAlaReuna; 545 kentta['y'] = LuoYläReuna; 546 kentta.Insert(20, 20); 547 } 548 else 549 { 550 TileMap kentta = TileMap.FromFile("kenttarandom.txt"); 551 kentta['#'] = lisaaRandomTaso; 552 kentta['m'] = LuoMaila; 553 kentta['-'] = LuoReunat; 554 kentta['_'] = LuoAlaReuna; 555 kentta['y'] = LuoYläReuna; 556 kentta.Insert(40, 40); 557 } 440 558 } 441 559 … … 450 568 } 451 569 570 PhysicsObject lisaaTasoTuhoutumaton() 571 { 572 PhysicsObject tasoTuhoutumaton = PhysicsObject.CreateStaticObject(40, 10); 573 //tasoTuhoutumaton.Tag = "taso"; 574 tasoTuhoutumaton.Image = tasoTuhoutumatonKuva; 575 tasoTuhoutumaton.Restitution = 1.0; 576 return tasoTuhoutumaton; 577 } 578 579 PhysicsObject lisaaPystyTaso() 580 { 581 PhysicsObject taso = PhysicsObject.CreateStaticObject(10, 40); 582 taso.Tag = "taso"; 583 taso.Image = tasoKuva; 584 taso.Restitution = 1.0; 585 tasot.Add(taso); 586 return taso; 587 } 588 589 PhysicsObject lisaaPystyTasoTuhoutumaton() 590 { 591 PhysicsObject tasoTuhoutumaton = PhysicsObject.CreateStaticObject(10, 40); 592 //tasoTuhoutumaton.Tag = "taso"; 593 tasoTuhoutumaton.Image = tasoTuhoutumatonKuvaPysty; 594 tasoTuhoutumaton.Restitution = 1.0; 595 return tasoTuhoutumaton; 596 } 597 452 598 PhysicsObject lisaaTaso2() 453 599 { … … 467 613 tntt.Add(tnt); 468 614 tnt.Tag = "TNT"; 469 615 470 616 return tnt; 471 617 } … … 475 621 maila = PhysicsObject.CreateStaticObject(60.0, 10); 476 622 maila.Shape = Shape.Rectangle; 623 maila.Image = mailanKuva; 477 624 maila.Restitution = 1.0; 478 625 maila.Color = Color.Green; 479 626 return maila; 627 } 628 629 PhysicsObject lisaaRandomTaso() 630 { 631 int tasonTyyppi = RandomGen.NextInt(1, 4); 632 PhysicsObject taso; 633 634 if (tasonTyyppi == 1) 635 { 636 taso = lisaaTaso(); 637 } 638 else if (tasonTyyppi == 2) 639 { 640 taso = lisaaTaso2(); 641 } 642 else if (tasonTyyppi == 3) 643 { 644 taso = lisaaTNT(); 645 } 646 else if (tasonTyyppi == 4) 647 { 648 MessageDisplay.Add("tuli nelonen"); 649 taso = lisaaTaso(); 650 } 651 else 652 { 653 taso = lisaaTaso(); 654 } 655 656 657 return taso; 480 658 } 481 659 … … 496 674 return alaReuna; 497 675 } 676 498 677 PhysicsObject LuoYläReuna() 499 678 { … … 526 705 Label tekstikentta = new Label("Hävisit. Sait " + pisteet + " pistettä"); 527 706 Add(tekstikentta); 528 Timer.SingleShot(3, Exit); 529 } 530 531 double PALLON_NOPEUS = 300; 707 Timer.SingleShot(3, Valikko); 708 } 532 709 533 710 protected override void Update(Time time) 534 711 { 535 if (pallo != null && Math.Abs(pallo.Velocity.Y) < PALLON_NOPEUS)712 if (pallo != null && Math.Abs(pallo.Velocity.Y) < pallonNopeus) 536 713 { 537 714 pallo.Velocity = new Vector(pallo.Velocity.X, pallo.Velocity.Y * 1.1); 538 715 539 716 } 717 if (pallo != null && Math.Abs(pallo.Velocity.X) < pallonNopeus) 718 { 719 pallo.Velocity = new Vector(pallo.Velocity.X * 1.1, pallo.Velocity.Y); 720 721 } 540 722 base.Update(time); 541 723 542 724 } 543 725 -
2011/23/iltakuop/Blocks/Blocks/Blocks/kentta1.txt
r1737 r1791 1 y 2 # # # # # # # # # 3 # # # # # # # # # 4 # # # # # # # # # 5 # # # # # # # # # 6 - - 7 1 y 8 2 9 10 11 m 12 _ 3 # # # # # # # # # 4 5 # # # # # # # # # 6 7 # # # # # # # # # 8 9 # # # # # # # # # 10 11 - - 12 13 14 15 16 17 18 19 20 21 m 22 23 _ -
2011/23/iltakuop/Blocks/Blocks/Blocks/kentta2.txt
r1751 r1791 1 y 2 # # # # # # # # # 3 # # # # # # # # # 4 # # # # * # # # # 5 # # # # * # # # # 6 # # # # # # # # # 7 - - 8 1 y 9 2 10 11 m 12 _ 3 # # # # # # # # # 4 5 # # # # # # # # # 6 7 # # # # * # # # # 8 9 # # # # # # # # # 10 11 12 - - 13 # # # # # 14 15 16 17 18 19 20 21 m 22 23 _ -
2011/23/iltakuop/Blocks/Blocks/Blocks/kentta3.txt
r1751 r1791 1 y 2 # # # # # # # # # 3 # # # # # # # # # 4 # # # # * # # # # 5 # # # # * # # # # 6 # # # # ! # # # # 7 - - 8 1 y 9 2 10 11 m 12 _ 3 # # # # # # # # # 4 5 # # # # # # # # # 6 7 # # # # # # # # # 8 # # # # * # # # # 9 ! # ! # ! ! # ! ! # ! # ! 10 11 - P P - 12 P P 13 T T T # # # # # T T T 14 15 16 17 18 19 20 21 m 22 23 _
Note: See TracChangeset
for help on using the changeset viewer.