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