Changeset 2962
- Timestamp:
- 2012-06-12 14:40:32 (10 years ago)
- Location:
- 2012/24/ToniV/pong
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/24/ToniV/pong/pong/pong/pong.cs
r2921 r2962 9 9 public class pong : PhysicsGame 10 10 { 11 Vector nopeusYlos = new Vector(0, 700); 12 Vector nopeusAlas = new Vector(0, -700); 13 11 14 PhysicsObject pallo; 15 16 PhysicsObject vasenReuna; 17 PhysicsObject oikeaReuna; 18 19 PhysicsObject maila; 20 PhysicsObject maila2; 21 22 IntMeter pelaajan1Pisteet; 23 IntMeter pelaajan2Pisteet; 24 25 12 26 public override void Begin() 13 27 { 14 28 LuoKentta(); 15 29 Asetaohjaimet(); 30 LisaaLaskurit(); 16 31 Aloitapeli(); 17 32 18 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 19 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 33 20 34 21 35 } … … 27 41 pallo.Color = Color.Green; 28 42 29 LuoMaila( Level.Left +20.0,0.0);30 LuoMaila(Level.Right - 20.0, 0.0);43 maila = LuoMaila(Level.Left + 20.0, 0.0); 44 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 31 45 32 46 pallo.X = -200.0; 33 47 pallo.Y = 0.0; 34 48 35 Level.CreateBorders(1.0, false); 49 vasenReuna = Level.CreateLeftBorder(); 50 vasenReuna.Restitution = 1.0; 51 vasenReuna.IsVisible = true; 52 53 oikeaReuna = Level.CreateRightBorder(); 54 oikeaReuna.Restitution = 1.0; 55 oikeaReuna.IsVisible = true; 56 57 PhysicsObject alaReuna = Level.CreateBottomBorder(); 58 alaReuna.Restitution = 1.0; 59 alaReuna.IsVisible = true; 60 61 PhysicsObject yläReuna = Level.CreateTopBorder(); 62 yläReuna.Restitution = 1.0; 63 yläReuna.IsVisible = true; 64 36 65 pallo.Restitution = 1.0; 37 66 Level.BackgroundColor = Color.Yellow; 38 Camera.ZoomToLevel( );39 67 Camera.ZoomToLevel(50); 68 AddCollisionHandler(pallo, KasittelePallonTormays); 40 69 41 70 } … … 43 72 void Aloitapeli() 44 73 { 45 Vector impulssi = new Vector( 500.0, 0.0);74 Vector impulssi = new Vector(600.0, 0.0); 46 75 pallo.Hit(impulssi); 47 76 } 48 77 49 voidLuoMaila(double x, double y)78 PhysicsObject LuoMaila(double x, double y) 50 79 { 51 80 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 52 81 maila.Shape = Shape.Rectangle; 53 maila.X = x;54 maila.Y = y;82 maila.X = x; 83 maila.Y = y; 55 84 maila.Restitution = 1.0; 56 85 maila.Color = Color.Violet; 57 86 Add(maila); 58 87 59 } 88 return maila; 89 90 } 91 void Asetaohjaimet() 92 { 93 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 94 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 95 96 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "liikuta ylös vasenta mailaa", maila, nopeusYlos); 97 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 98 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, null, maila, nopeusAlas); 99 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 100 101 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä Ohjeet"); 102 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "lopeta peli"); 103 104 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 105 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 106 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 107 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 108 109 110 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila, nopeusYlos); 111 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 112 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila, nopeusAlas); 113 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 114 115 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 116 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 117 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 118 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 119 120 ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 121 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 122 123 124 } 125 void AsetaNopeus(IPhysicsObject maila, Vector nopeus) 126 { 127 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 128 { 129 maila.Velocity = Vector.Zero; 130 return; 131 } 132 133 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 134 { 135 maila.Velocity = Vector.Zero; 136 return; 137 } 138 139 maila.Velocity = nopeus; 140 141 } 142 143 void LisaaLaskurit() 144 { 145 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 146 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 147 } 148 149 IntMeter LuoPisteLaskuri(double X, double Y) 150 { 151 IntMeter laskuri = new IntMeter(0); 152 laskuri.MaxValue = 10; 153 Label naytto = new Label(); 154 naytto.BindTo(laskuri); 155 naytto.X = X; 156 naytto.Y = Y; 157 naytto.TextColor = Color.Black; 158 naytto.BorderColor = Level.BackgroundColor; 159 naytto.Color = Level.BackgroundColor; 160 Add(naytto); 161 162 return laskuri; 163 } 164 165 166 167 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) { 168 if (kohde == oikeaReuna) 169 170 pelaajan1Pisteet.Value += 1; 171 172 else if (kohde == vasenReuna) 173 174 pelaajan2Pisteet.Value += 1; 175 60 176 }
Note: See TracChangeset
for help on using the changeset viewer.