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