Changeset 1317 for 2010/30/pyryl/pong
- Timestamp:
- 2010-07-27 11:29:01 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/30/pyryl/pong/Peli.cs
r1276 r1317 6 6 public class Peli : PhysicsGame 7 7 { 8 Vector NopeusYlos = new Vector (200.0);9 Vector NopeusAlas = new Vector (-200.0);8 Vector nopeusYlos = new Vector(0, 800); 9 Vector nopeusAlas = new Vector(0, -800); 10 10 11 11 PhysicsObject pallo; 12 PhysicsObject maila1; 13 PhysicsObject maila2; 14 PhysicsObject oikeareuna; 15 PhysicsObject vasenreuna; 16 17 18 IntMeter pelaajan1Pisteet; 19 IntMeter pelaajan2Pisteet; 12 20 13 21 protected override void Begin() … … 16 24 AsetaOhjaimet(); 17 25 AloitaPeli(); 26 LisaaLaskurit(); 18 27 //TODO: Alusta peli tässä 19 28 // LuoKentta(); … … 31 40 pallo.Y = 0.0; 32 41 33 Level.CreateBorders(1.0, false); 34 pallo.Restitution = 1.0; 42 43 AddCollisionHandler(pallo, KasittelePallonTormays); 44 45 vasenreuna = Level.CreateLeftBorder(); 46 PhysicsObject vasenReuna = Level.CreateLeftBorder(); 47 vasenReuna.Restitution = 1.0; 48 vasenReuna.IsVisible = false; 49 oikeareuna = Level.CreateRightBorder(); 50 PhysicsObject oikeaReuna = Level.CreateRightBorder(); 51 vasenReuna.Restitution = 1.0; 52 vasenReuna.IsVisible = false; 53 PhysicsObject ylaReuna = Level.CreateTopBorder(); 54 ylaReuna.Restitution = 1.0; 55 ylaReuna.IsVisible = false; 56 PhysicsObject alaReuna = Level.CreateBottomBorder(); 57 alaReuna.Restitution = 1.0; 58 alaReuna.IsVisible = false; 59 60 61 pallo.Restitution = 3.0; 35 62 pallo.KineticFriction = 0; 36 63 Level.BackgroundColor = Color.Black; 37 64 Camera.ZoomToLevel(); 38 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 39 maila.Shape = Shapes.Rectangle; 40 maila.X = Level.Left + 20.0; 41 maila.Y = 0.0; 42 maila.Restitution = 1.0; 43 Add(maila); 65 66 44 67 maila1 = LuoMaila (Level.Left + 20.0, 0.0); 45 68 maila2 = LuoMaila(Level.Right - 20.0, 0.0); … … 47 70 void AloitaPeli() 48 71 { 49 Vector impulssi = new Vector(500.0, 0.0);72 Vector impulssi = new Vector(500.0, 30.0); 50 73 pallo.Hit(impulssi); 51 74 } … … 62 85 void AsetaOhjaimet() 63 86 { 87 Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusYlos); 88 Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 89 Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 90 Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 91 92 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 93 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 94 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 95 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 96 97 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 98 64 99 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 65 Keyboard.Listen (Key.A ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta Mailaa Ylos"); 66 Keyboard.Listen (Key.A ButtonState.Released PysaytaMaila, Null); 100 101 102 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 103 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 104 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 105 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 106 107 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 108 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 109 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 110 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 111 112 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 113 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 114 67 115 } 68 {void AsetaNopeus ( PhysicsObject maila, Vector nopeus ) 69 { 116 117 void AsetaNopeus ( PhysicsObject maila, Vector nopeus ) 118 { 119 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 120 { 121 maila.Velocity = Vector.Zero; 122 return; 123 } 124 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 125 { 126 maila.Velocity = Vector.Zero; 127 return; 128 } 70 129 maila.Velocity = nopeus; 71 130 131 } 132 void LisaaLaskurit() 133 { 134 pelaajan1Pisteet = LuoPisteLaskuri ( Screen.Left + 100.0, Screen.Top -100.0); 135 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 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.Red; 147 Add(Naytto); 148 return laskuri; 149 } 150 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 151 { 152 if (kohde == oikeareuna) 153 { 154 pelaajan1Pisteet.Value += 1; 155 156 } 157 else if (kohde == vasenreuna) 158 { 159 pelaajan2Pisteet.Value += 1; 160 } 161 } 162 72 163 } 73 }
Note: See TracChangeset
for help on using the changeset viewer.