- Timestamp:
- 2016-06-14 14:58:05 (7 years ago)
- Location:
- 2016/24/MikoA
- Files:
-
- 64 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2016/24/MikoA/PONG/PONG/PONG/PONG.cs
r7275 r7300 8 8 9 9 public class PONG : PhysicsGame 10 11 Vector nopeusYlos = new Vector(0, 200);12 Vector nopeusAlas = new Vector(0, - 200);10 { 11 Vector nopeusYlos = new Vector(0, 500); 12 Vector nopeusAlas = new Vector(0, -500); 13 13 14 14 PhysicsObject pallo; 15 16 15 PhysicsObject maila1; 17 16 PhysicsObject maila2; 18 17 18 PhysicsObject vasenReuna; 19 PhysicsObject oikeaReuna; 20 21 IntMeter Pelaajan1Pisteet; 22 IntMeter Pelaajan2Pisteet; 19 23 public override void Begin() 20 24 { … … 22 26 LuoKentta(); 23 27 AsetaOhjaimet(); 28 LisaaLaskurit(); 24 29 AloitaPeli(); 25 30 … … 27 32 } 28 33 void LuoKentta() 34 29 35 { 36 30 37 31 38 Level.Width = Screen.Width; … … 38 45 pallo.Y = 0.0; 39 46 40 maila1 = LuoMaila(Level.Left + 20.0, 0.0);41 maila2 = LuoMaila(Level.Right - 20.0, 0.0);47 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 48 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 42 49 50 AddCollisionHandler(pallo, KasittelePallonTormays); 43 51 44 Level.CreateBorders(1.0, false); 52 vasenReuna = Level.CreateLeftBorder(); 53 vasenReuna.Restitution = 1.0; 54 vasenReuna.KineticFriction = 0.0; 55 vasenReuna.IsVisible = false; 56 57 oikeaReuna = Level.CreateRightBorder(); 58 oikeaReuna.Restitution = 1.0; 59 oikeaReuna.KineticFriction = 0.0; 60 oikeaReuna.IsVisible = false; 61 62 PhysicsObject ylaReuna = Level.CreateTopBorder(); 63 ylaReuna.Restitution = 1.0; 64 ylaReuna.KineticFriction = 0.0; 65 ylaReuna.IsVisible = false; 66 67 PhysicsObject alaReuna = Level.CreateBottomBorder(); 68 alaReuna.Restitution = 1.0; 69 alaReuna.IsVisible = false; 70 alaReuna.KineticFriction = 0.0; 71 45 72 Level.Background.Color = Color.Orange; 46 73 Camera.ZoomToLevel(); 47 74 pallo.Restitution = 1.0; 75 48 76 49 77 } … … 51 79 void AloitaPeli() 52 80 { 53 Vector impulssi = new Vector( 400.0, 400.0);81 Vector impulssi = new Vector(800.0, 800.0); 54 82 pallo.Hit(impulssi); 55 83 } … … 68 96 void AsetaOhjaimet() 69 97 { 70 Keyboard.Listen(Key.A, ButtonState.Down,AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusYlos);71 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null,maila1, Vector.Zero);72 Keyboard.Listen(Key.Z, ButtonState.Down,AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusAlas);73 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null,maila1, Vector.Zero);98 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusYlos); 99 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 100 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusAlas); 101 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 74 102 75 Keyboard.Listen(Key.Up, ButtonState.Down,AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylos", maila2, nopeusYlos);76 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null,maila2, Vector.Zero);77 Keyboard.Listen(Key.Down, ButtonState.Down,AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas);78 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null,maila2, Vector.Zero);103 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylos", maila2, nopeusYlos); 104 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 105 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 106 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 79 107 80 Keyboard.Listen(Key.F1, 108 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 81 109 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 82 110 83 111 84 112 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 85 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");113 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 86 114 87 115 } … … 89 117 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 90 118 { 119 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 120 121 { 122 maila.Velocity = Vector.Zero; 123 return; 124 125 } 126 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 127 { 128 maila.Velocity = Vector.Zero; 129 return; 130 131 } 91 132 maila.Velocity = nopeus; 133 } 134 void LisaaLaskurit() 135 { 136 Pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 137 Pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 138 } 139 IntMeter LuoPisteLaskuri(double x, double y) 140 { 141 IntMeter laskuri = new IntMeter(0); 142 laskuri.MaxValue = 10; 143 144 Label naytto = new Label(); 145 naytto.BindTo(laskuri); 146 naytto.X = x; 147 naytto.Y = y; 148 naytto.TextColor = Color.White; 149 naytto.BorderColor = Level.Background.Color; 150 naytto.Color = Level.Background.Color; 151 Add(naytto); 152 153 return laskuri; 154 } 155 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 156 { 157 if (kohde == oikeaReuna) 158 { 159 Pelaajan1Pisteet.Value += 1; 160 } 161 else if (kohde == vasenReuna) 162 { 163 Pelaajan2Pisteet.Value += 1; 164 } 165 } 166 } 92 167 93 168 94 }95 }96 169 97 98 99 100
Note: See TracChangeset
for help on using the changeset viewer.