Changeset 1577
- Timestamp:
- 2010-08-03 14:59:13 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/31/vivevinu/Pong/Peli.cs
r1527 r1577 6 6 public class Peli : PhysicsGame 7 7 { 8 Vector nopeusYlos = new Vector(0, 200); 9 Vector nopeusAlas = new Vector(0, -200); 8 10 PhysicsObject pallo; 11 PhysicsObject maila1; 12 PhysicsObject maila2; 13 IntMeter pelaajan1Pisteet; 14 IntMeter pelaajan2Pisteet; 15 PhysicsObject oikeareuna; 16 PhysicsObject vasenreuna; 9 17 protected override void Begin() 10 18 { 11 19 LuoKentta(); 20 AsetaOhjaimet(); 21 LisaaLaskurit(); 12 22 Aloitapeli(); 13 23 } … … 20 30 pallo.Restitution = 1.0; 21 31 Add(pallo); 22 Level.CreateBorders(1.0, false); 32 AddCollisionHandler(pallo, Kasittelepallontormays); 33 maila1 = LuoMaila(Level.Left + 20, 0); 34 maila2 = LuoMaila(Level.Right - 20, 0); 35 vasenreuna = Level.CreateLeftBorder(); 36 vasenreuna.Restitution = 1; 37 vasenreuna.IsVisible = false; 38 oikeareuna = Level.CreateRightBorder(); 39 oikeareuna.Restitution = 1; 40 oikeareuna.IsVisible = false; 41 PhysicsObject ylareuna = Level.CreateTopBorder(); 42 ylareuna.Restitution = 1; 43 ylareuna.IsVisible = false; 44 PhysicsObject alareuna = Level.CreateBottomBorder(); 45 alareuna.Restitution = 1; 46 alareuna.IsVisible = false; 23 47 Level.BackgroundColor = Color.Black; 24 48 Camera.ZoomToLevel(); … … 29 53 pallo.Hit(impulssi); 30 54 } 31 void ToinenMaila(double x, double y)55 PhysicsObject LuoMaila(double x, double y) 32 56 { 33 57 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 34 58 maila.Shape = Shapes.Rectangle; 35 maila.X = Level.Left + 20.0;36 maila.Y = 0.0;59 maila.X = x; 60 maila.Y = y; 37 61 maila.Restitution = 1.0; 38 62 Add(maila); 63 return maila; 64 } 65 void AsetaOhjaimet() 66 { 67 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 68 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 69 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaaja 1: Liikuta mailaa ylös", maila1, nopeusAlas); 70 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 71 72 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 73 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 74 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaaja 2: Liikuta mailaa ylös", maila2, nopeusAlas); 75 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 76 77 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 78 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 79 } 80 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 81 { 82 if ((maila.Top > Level.Top)&&(nopeus.Y>0)) 83 { 84 maila.Velocity = Vector.Zero; 85 return; 86 } 87 if ((maila.Bottom < Level.Bottom) && (nopeus.Y < 0)) 88 { 89 maila.Velocity = Vector.Zero; 90 return; 91 } 92 maila.Velocity = nopeus; 93 } 94 void LisaaLaskurit() 95 { 96 pelaajan1Pisteet = LuoPistelaskuri(Screen.Left +100, Screen.Top -100); 97 pelaajan2Pisteet = LuoPistelaskuri(Screen.Right -100, Screen.Top -100); 98 } 99 IntMeter LuoPistelaskuri(double x, double y) 100 { 101 IntMeter laskuri = new IntMeter(0); 102 laskuri.MaxValue = 10; 103 Label naytto = new Label(); 104 naytto.BindTo(laskuri); 105 naytto.X = x; 106 naytto.Y = y; 107 naytto.TextColor = Color.White; 108 Add(naytto); 109 return laskuri; 110 } 111 void Kasittelepallontormays(PhysicsObject pallo, PhysicsObject kohde) 112 { 113 if (kohde == vasenreuna) 114 { 115 pelaajan2Pisteet.Value += 1; 116 } 117 else if (kohde == oikeareuna) 118 { 119 pelaajan1Pisteet.Value += 1; 120 } 39 121 } 40 122 }
Note: See TracChangeset
for help on using the changeset viewer.