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