- Timestamp:
- 2012-06-15 12:13:28 (11 years ago)
- Location:
- 2012/24/LauriS
- Files:
-
- 55 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/24/LauriS/PongPong/PongPong/PongPong/PongPong.cs
r2913 r3109 9 9 public class PongPong : PhysicsGame 10 10 { 11 Vector nopeusYlos = new Vector(0, 200);12 Vector nopeusAlas = new Vector(0, - 200);11 Vector nopeusYlos = new Vector(0, 400); 12 Vector nopeusAlas = new Vector(0, -400); 13 13 14 14 PhysicsObject pallo; … … 16 16 PhysicsObject maila2; 17 17 18 PhysicsObject vasenReuna; 19 PhysicsObject oikeaReuna; 20 21 IntMeter pelaajan1Pisteet; 22 IntMeter pelaajan2Pisteet; 23 24 18 25 public override void Begin() 19 26 { 20 // TODO: Kirjoita ohjelmakoodisi tähän 27 21 28 LuoKentta(); 22 29 AsetaOhjaimet(); 30 LisaaLaskurit(); 23 31 AloitaPeli(); 24 32 … … 28 36 void LuoKentta() 29 37 { 38 39 40 30 41 31 42 pallo = new PhysicsObject(40.0, 40.0); … … 38 49 Add(pallo); 39 50 40 maila1=LuoMaila(Level.Left + 20.0, 0.0); 41 maila2=LuoMaila(Level.Right - 20.0, 0.0); 51 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 52 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 53 AddCollisionHandler(pallo, KasittelePallonTormays); 42 54 43 55 44 Level.CreateBorders(1.0, false); 56 vasenReuna = Level.CreateLeftBorder(); 57 vasenReuna.Restitution = 1.0; 58 vasenReuna.IsVisible = false; 59 oikeaReuna = Level.CreateRightBorder(); 60 oikeaReuna.Restitution = 1.0; 61 oikeaReuna.IsVisible = false; 62 PhysicsObject ylaReuna = Level.CreateTopBorder(); 63 ylaReuna.Restitution = 1.0; 64 ylaReuna.IsVisible = false; 65 PhysicsObject alaReuna = Level.CreateBottomBorder(); 66 alaReuna.Restitution = 1.0; 67 alaReuna.IsVisible = false; 68 69 45 70 Level.BackgroundColor = Color.Green; 46 71 Camera.ZoomToLevel(); 47 72 } 48 73 49 void AloitaPeli() 50 { 51 Vector impulssi = new Vector(500.0, 0.0); 52 pallo.Hit(impulssi); 53 } 74 75 76 77 78 79 80 54 81 55 82 PhysicsObject LuoMaila(double x, double y) … … 64 91 } 65 92 93 void LisaaLaskurit() 94 { 95 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 96 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 66 97 98 } 99 IntMeter LuoPisteLaskuri(double x, double y) 100 { 101 IntMeter laskuri = new IntMeter(0); 102 laskuri.MaxValue = 10; 103 Label naytto = new Label(); 104 naytto.BindTo(laskuri); 105 naytto.X = x; 106 naytto.Y = y; 107 naytto.TextColor = Color.Black; 108 naytto.BorderColor = Level.BackgroundColor; 109 naytto.Color = Level.BackgroundColor; 110 Add(naytto); 111 return laskuri; 112 } 113 114 115 116 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 117 { 118 if (kohde == oikeaReuna) 119 { 120 pelaajan1Pisteet.Value += 1; 121 } 122 else if (kohde == vasenReuna) 123 { 124 pelaajan2Pisteet.Value += 1; 125 126 } 127 128 } 129 130 131 void AloitaPeli() 132 { 133 Vector impulssi = new Vector(700.0, 0.0); 134 pallo.Hit(impulssi); 135 } 67 136 68 137 void AsetaOhjaimet() … … 78 147 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 79 148 149 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 150 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 80 151 81 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 152 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 153 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 154 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 155 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 82 156 157 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 158 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 159 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 160 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 83 161 84 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 85 86 87 } 88 89 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 90 { 91 maila.Velocity = nopeus; 162 ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 163 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 92 164 } 93 165 94 166 95 167 168 169 170 171 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 172 { 173 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 174 { 175 maila.Velocity = Vector.Zero; 176 return; 177 } 178 179 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 180 { 181 maila.Velocity = Vector.Zero; 182 return; 183 } 184 maila.Velocity = nopeus; 185 186 } 187 188 96 189 } 97 190 191 192
Note: See TracChangeset
for help on using the changeset viewer.