- Timestamp:
- 2010-07-27 11:30:11 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/30/oteimatt/pong/Peli.cs
r1281 r1318 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 IntMeter pelaajan1Pisteet; 13 IntMeter pelaajan2Pisteet; 14 PhysicsObject vasenReuna; 15 PhysicsObject oikeaReuna; 16 17 8 18 PhysicsObject pallo; 9 19 … … 11 21 { 12 22 LuoKentta(); 13 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 23 AsetaOhjaimet(); 24 LisaaLaskurit(); 14 25 AloitaPeli(); 15 26 27 16 28 } 17 29 … … 26 38 pallo.Restitution = 1.0; 27 39 Add(pallo); 40 AddCollisionHandler(pallo, KasittelePallonTormays); 28 41 29 LuoMaila(Level.Left + 20.0, 0.0);30 LuoMaila(Level.Right - 20.0, 0.0);31 32 42 33 Level.CreateBorders(1.0, false); 43 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 44 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 45 46 vasenReuna = Level.CreateLeftBorder(); 47 PhysicsObject vasenReuna = Level.CreateLeftBorder(); 48 vasenReuna.Restitution = 1.0; 49 vasenReuna.IsVisible = false; 50 51 oikeaReuna = Level.CreateRightBorder(); 52 PhysicsObject oikeaReuna = Level.CreateRightBorder(); 53 oikeaReuna.Restitution = 1.0; 54 oikeaReuna.IsVisible = false; 55 56 PhysicsObject pohjaReuna = Level.CreateBottomBorder(); 57 pohjaReuna.Restitution = 1.0; 58 pohjaReuna.IsVisible = false; 59 60 PhysicsObject ylaReuna = Level.CreateTopBorder(); 61 ylaReuna.Restitution = 1.0; 62 ylaReuna.IsVisible = false; 63 64 34 65 Camera.ZoomToLevel(); 35 66 Level.BackgroundColor = Color.Black; … … 40 71 void AloitaPeli() 41 72 { 42 Vector impulssi = new Vector( 500.0, 100.0);73 Vector impulssi = new Vector(1000.0, 1000.0); 43 74 pallo.Hit(impulssi); 44 75 45 76 } 46 77 47 void LuoMaila(double x, double y) 48 { 49 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 78 PhysicsObject LuoMaila(double x, double y) 79 80 { 81 82 83 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 50 84 maila.Shape = Shapes.Rectangle; 51 85 maila.X = x; … … 53 87 maila.Restitution = 1.0; 54 88 Add(maila); 89 90 return maila; 91 92 } 93 void AsetaOhjaimet() 94 { 95 Keyboard.Listen( Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos ); 96 Keyboard.Listen( Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 97 98 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 99 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 100 101 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 102 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 103 104 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 105 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 106 107 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 108 109 110 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 111 112 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 113 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 114 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 115 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 116 117 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 118 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 119 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 120 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 121 122 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 123 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 124 125 } 126 127 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 128 { 129 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 130 { 131 maila.Velocity = Vector.Zero; 132 return; 133 } 134 135 if ( (nopeus.Y > 0) && (maila.Top > Level.Top)) 136 { 137 maila.Velocity = Vector.Zero; 138 return; 139 } 140 141 maila.Velocity = nopeus; 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.White; 158 Add(naytto); 159 160 return laskuri; 161 } 162 163 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 164 { 165 if (kohde == oikeaReuna) 166 { 167 pelaajan1Pisteet.Value += 1; 168 } 169 else if (kohde == vasenReuna) 170 { 171 pelaajan2Pisteet.Value += 1; 172 } 55 173 } 56 174
Note: See TracChangeset
for help on using the changeset viewer.