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