Changeset 8116
- Timestamp:
- 2016-07-26 14:54:18 (7 years ago)
- Location:
- 2016/30/KasimirP
- Files:
-
- 9 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2016/30/KasimirP/Pong/Pong/Pong/Pong.cs
r8098 r8116 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 16 PhysicsObject maila1; 17 PhysicsObject maila2; 18 19 IntMeter pelaajan1Pisteet; 20 IntMeter pelaajan2Pisteet; 21 22 PhysicsObject oikeaReuna; 23 PhysicsObject vasenReuna; 24 25 26 IntMeter LuoPisteLaskuri(double x, double y) 27 { 28 IntMeter laskuri = new IntMeter(0); 29 laskuri.MaxValue = 10; 30 31 Label naytto = new Label(); 32 naytto.BindTo(laskuri); 33 naytto.X = x; 34 naytto.Y = y; 35 naytto.TextColor = Color.RosePink; 36 naytto.BorderColor = Level.Background.Color; 37 naytto.Color = Level.Background.Color; 38 Add(naytto); 39 40 return laskuri; 41 42 } 43 13 44 public override void Begin() 14 45 { 46 ClearAll(); 15 47 // TODO: Kirjoita ohjelmakoodisi tähän 16 48 LuoKentta(); 17 18 49 AsetaOhjaimet(); 50 51 AloitaPeli(); 52 LisaaLaskurit(); 53 54 55 56 19 57 } 20 58 … … 25 63 pallo.X = 0.0; 26 64 pallo.Y = -0.0; 27 pallo.Restitution = 1. 0;65 pallo.Restitution = 1.5; 28 66 pallo.Color = Color.Yellow; 29 67 Add(pallo); 30 68 Camera.ZoomToLevel(); 31 Level.CreateBorders(1, false); 32 33 69 vasenReuna = Level.CreateLeftBorder(); 70 vasenReuna.Restitution = 1.0; 71 vasenReuna.IsVisible = false; 72 oikeaReuna = Level.CreateRightBorder(); 73 oikeaReuna.Restitution = 1.0; 74 oikeaReuna.IsVisible = false; 75 PhysicsObject alareuna = Level.CreateBottomBorder(); 76 alareuna.Restitution = 1.0; 77 alareuna.IsVisible = false; 78 PhysicsObject yläreuna = Level.CreateTopBorder(); 79 yläreuna.Restitution = 1.0; 80 yläreuna.IsVisible = false; 81 82 83 84 85 86 87 88 AddCollisionHandler(pallo, KasittelePallonTormays); 89 90 91 34 92 Level.Background.Color = Color.Black; 35 93 Camera.ZoomToLevel(); 36 94 37 LuoMaila(Level.Left + 20.0, 0.0);38 LuoMaila(Level.Right - 20.0, 0.0);39 40 41 42 43 44 AloitaPeli(); 95 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 96 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 97 98 99 100 101 102 45 103 } 46 104 public void AloitaPeli() 47 105 { 106 pallo.Position = Vector.Zero; 107 48 108 Vector impulssi = new Vector(500.0, 0.0); 49 109 pallo.Hit(impulssi); 50 51 } 52 voidLuoMaila(double x, double y)110 111 } 112 PhysicsObject LuoMaila(double x, double y) 53 113 { 54 114 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); … … 59 119 maila.Color = Color.Blue; 60 120 Add(maila); 61 62 121 return maila; 122 123 124 } 125 126 private void AloitaUudestaan() 127 { 128 63 129 } 64 130 65 131 void AsetaOhjaimet() 66 132 { 67 Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMailaYlos, "Pelaaja 1: Liikuta mailaa ylös"); 68 Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null); 69 70 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli xddd"); 71 } 72 133 Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "LiikutaMailaYlos, Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 134 Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 135 136 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Niko on noob"); 137 Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 138 Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 139 140 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 141 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 142 143 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 144 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 145 146 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet kek"); 147 Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaUudestaan, "Aloita uudestaan xd (niko on noob)"); 148 Window.Fullscreen = true; 149 150 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 151 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 152 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 153 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 154 155 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 156 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 157 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 158 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 159 160 ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 161 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 162 163 } 164 73 165 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 74 166 { 167 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 168 { 169 maila.Velocity = Vector.Zero; 170 return; 171 } 172 173 174 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 175 { 176 maila.Velocity = Vector.Zero; 177 return; 178 179 } 75 180 maila.Velocity = nopeus; 76 77 78 } 79 181 182 183 184 } 185 void LisaaLaskurit() 186 { 187 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 188 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 189 } 190 191 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 192 { 193 194 if (kohde == oikeaReuna) 195 { 196 pelaajan1Pisteet.Value += 1; 197 //pallo.Position = Vector.Zero; 198 199 Vector impulssi = new Vector(500.0, 0.0); 200 //pallo.Hit(impulssi); 201 } 202 else if (kohde == vasenReuna) 203 { 204 pelaajan2Pisteet.Value += 1; 205 //Timer.SingleShot(0.01, AloitaPeli); 206 } 207 } 208 209 210 80 211 }
Note: See TracChangeset
for help on using the changeset viewer.