Changeset 4207 for 2013/26/Olli-PekkaL/pong/pong/pong/pong.cs
- Timestamp:
- 2013-06-25 11:23:55 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/26/Olli-PekkaL/pong/pong/pong/pong.cs
r4200 r4207 9 9 public class pong : PhysicsGame 10 10 { 11 Vector nopeusYlos = new Vector(0, 200); 12 Vector nopeusAlas = new Vector(0, -200); 13 11 14 PhysicsObject pallo; 12 15 13 Vector nopeusAlas = new Vector(0, -200);14 Vector nopeusYlos = new Vector(0, 200);16 IntMeter pelaajan1pisteet; 17 IntMeter pelaajan2pisteet; 15 18 16 19 PhysicsObject maila1; 17 20 PhysicsObject maila2; 21 22 PhysicsObject vasenReuna; 23 PhysicsObject oikeaReuna; 18 24 19 25 public override void Begin() … … 22 28 AloitaPeli(); 23 29 AsetaOhjaimet(); 24 30 LisaaLaskurit(); 25 31 26 32 … … 41 47 pallo.X = 0; 42 48 pallo.Y = 200; 43 pallo.Restitution = 500.0;49 pallo.Restitution = 800.0; 44 50 Add(pallo); 45 51 46 Maila1(Level.Left + 20.0, 0.0);47 Maila2(Level.Right + 20.0, 0.0);52 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 53 maila2 = LuoMaila(Level.Right + 20.0, 0.0); 48 54 49 55 Level.BackgroundColor = Color.Black; 50 Level.CreateBorders(1.0, false); 56 vasenReuna = Level.CreateLeftBorder(); 57 vasenReuna.Restitution = 1.0; 58 vasenReuna.IsVisible = false; 59 oikeaReuna = Level.CreateRightBorder(); 60 oikeaReuna.Restitution = 1.0; 61 oikeaReuna.IsVisible = false; 62 63 PhysicsObject ylaReuna = Level.CreateTopBorder(); 64 ylaReuna.Restitution = 1.0; 65 ylaReuna.IsVisible = false; 66 PhysicsObject alaReuna = Level.CreateBottomBorder(); 67 alaReuna.Restitution = 1.0; 68 alaReuna.IsVisible = false; 69 70 71 72 73 74 AddCollisionHandler(pallo, KasittelePallonTormays); 51 75 52 76 Camera.ZoomToLevel(); … … 57 81 pallo.Hit(impulssi); 58 82 } 59 voidLuoMaila(double x, double y)83 PhysicsObject LuoMaila(double x, double y) 60 84 { 61 85 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); … … 69 93 void AsetaOhjaimet() 70 94 { 71 Keyboard.Listen (Key.A, ButtonState.Down, LiikutaMaila1Ylos, "Pelaaja 1: Liikuta Mailaa Ylös"); 72 Keyboard.Listen (Key.A, ButtonState.Released, PysaytaMaila1, null); 73 74 Keyboard.Listen (Key.Escape, ButtonState.Pressed,ConfirmExit, "Lopeta Peli"); 95 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta Mailaa Ylös", maila1, nopeusYlos); 96 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 97 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 98 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 99 100 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 101 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 102 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 103 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 104 105 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 106 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta Peli"); 75 107 } 76 void AsetaNopeus (PhysicsObject maila,Vector nopeus)108 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 77 109 { 110 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 111 { 112 maila.Velocity = Vector.Zero; 113 return; 114 } 115 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 116 { 78 117 79 maila.Velocity = nopeus; 118 maila.Velocity = Vector.Zero; 119 return; 120 } 121 122 maila.Velocity = nopeus; 123 124 } 125 void LisaaLaskurit() 126 { 127 pelaajan1pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 128 pelaajan2pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 129 } 130 IntMeter LuoPisteLaskuri(double x, double y) 131 { 132 IntMeter laskuri = new IntMeter(0); 133 laskuri.MaxValue = 10; 134 135 Label naytto = new Label(); 136 naytto.BindTo(laskuri); 137 naytto.X = x; 138 naytto.Y = y; 139 naytto.TextColor = Color.White; 140 naytto.BorderColor = Level.BackgroundColor; 141 naytto.Color = Level.BackgroundColor; 142 Add(naytto); 143 144 return laskuri; 145 80 146 } 81 147 148 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 149 { 150 if (kohde == oikeaReuna) 151 { 152 pelaajan1pisteet.Value += 1; 153 } 82 154 155 else if (kohde == vasenReuna) 156 { 157 pelaajan2pisteet.Value += 1; 83 158 159 } 160 } 84 161 } 162
Note: See TracChangeset
for help on using the changeset viewer.