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