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