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