- Timestamp:
- 2010-07-06 14:58:59 (13 years ago)
- Location:
- 2010/27/jomiilri
- Files:
-
- 24 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/27/jomiilri/Pong/Peli.cs
r1076 r1108 14 14 PhysicsObject maila2; 15 15 16 PhysicsObject vasenReuna; 17 PhysicsObject oikeaReuna; 18 19 IntMeter pelaajan1Pisteet; 20 IntMeter pelaajan2Pisteet; 21 16 22 protected override void Begin() 17 23 { … … 19 25 LuoKentta(); 20 26 AsetaOhjaimet(); 27 LisaaLaskurit(); 21 28 AloitaPeli(); 22 29 … … 31 38 pallo.Y = 0.0; 32 39 pallo.Restitution = 1.0; 40 AddCollisionHandler(pallo, KasittelePallonTormays); 33 41 34 42 maila = LuoMaila(Level.Left + 20.0, 0.0); 35 43 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 36 44 37 Level.CreateBorders(1.0, false); 45 vasenReuna = Level.CreateLeftBorder(); 46 vasenReuna.Restitution = 1.0; 47 vasenReuna.IsVisible = false; 48 oikeaReuna = Level.CreateRightBorder(); 49 oikeaReuna.Restitution = 1.0; 50 oikeaReuna.IsVisible = false; 51 PhysicsObject alaReuna = Level.CreateBottomBorder(); 52 alaReuna.Restitution = 1.0; 53 alaReuna.IsVisible = false; 54 PhysicsObject yläReuna = Level.CreateTopBorder(); 55 yläReuna.Restitution = 1.0; 56 yläReuna.IsVisible = false; 57 38 58 Level.BackgroundColor = Color.Black; 39 59 … … 61 81 void AsetaOhjaimet() 62 82 { 63 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, LiikutaMailaaYlos,"Pelaaja 1: Liikuta mailaa ylös", maila, nopeusYlos);64 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila);65 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, LiikutaMailaaAlas,"Pelaaja 1: Liikuta mailaa alas", maila, nopeusAlas);66 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila);83 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila, nopeusYlos); 84 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 85 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila, nopeusAlas); 86 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 67 87 68 Keyboard.Listen(Key.Up, ButtonState.Down, Aseta nopeus, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos);69 Keyboard.Listen(Key.Up, ButtonState.Released, Aseta nopeus, PysaytaMaila, null, maila2);70 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, LiikutaMailaaAlas,"Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas);71 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila2);88 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 89 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 90 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 91 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 72 92 73 93 Keyboard.Listen(Key.F1, ButtonState.Down, ShowControlHelp, "Näytä ohjeet"); … … 75 95 } 76 96 77 void LiikutaMailaaYlos(PhysicsObject maila)97 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 78 98 { 79 if ( maila.Y >= Level.Top)99 if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 80 100 { 81 101 maila.Velocity = Vector.Zero; 82 102 return; 83 103 } 84 Vector nopeus = new Vector(0, 200); 85 maila.Velocity = nopeus; 86 } 87 void PysaytaMaila (PhysicsObject maila) 88 { 89 90 } 91 92 void LiikutaMailaaAlas(PhysicsObject maila) 93 { 94 Vector nopeus = new Vector(0, -200); 95 maila.Velocity = nopeus; 96 } 97 98 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 99 { 100 if( (nopeus.Y < 0) && (maila.Y < Level.Bottom) ) 104 if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 101 105 { 102 106 maila.Velocity = Vector.Zero; 103 107 return; 104 108 } 109 110 maila.Velocity = nopeus; 111 } 112 113 void LisaaLaskurit() 114 { 115 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 116 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 117 } 118 119 IntMeter LuoPisteLaskuri(double x, double y) 120 { 121 IntMeter laskuri = new IntMeter(0); 122 laskuri.MaxValue = 10; 123 Label naytto = new Label(); 124 naytto.BindTo(laskuri); 125 naytto.X = x; 126 naytto.Y = y; 127 naytto.TextColor = Color.White; 128 Add(naytto); 129 return laskuri; 130 } 131 132 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 133 { 134 if (kohde == oikeaReuna) 135 { 136 pelaajan1Pisteet.Value += 1; 137 } 138 else if (kohde == vasenReuna) 139 { 140 pelaajan2Pisteet.Value += 1; 141 } 142 } 105 143 }
Note: See TracChangeset
for help on using the changeset viewer.