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