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