Changeset 546
- Timestamp:
- 2010-06-08 11:32:00 (13 years ago)
- Location:
- 2010/23/almiilhi/pong
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/23/almiilhi/pong/Ohjelma.cs
r517 r546 3 3 #endregion 4 4 5 namespace pong5 namespace Pong 6 6 { 7 7 static class Ohjelma -
2010/23/almiilhi/pong/Peli.cs
r517 r546 2 2 using Jypeli; 3 3 using Jypeli.ScreenObjects; 4 using Jypeli.Assets;5 4 6 namespace pong5 namespace Pong 7 6 { 8 7 public class Peli : PhysicsGame 9 8 { 9 Vector nopeusYlos = new Vector(0, 200); 10 Vector nopeusAlas = new Vector(0, -200); 11 10 12 PhysicsObject pallo; 11 13 PhysicsObject maila1; 12 14 PhysicsObject maila2; 13 15 16 PhysicsObject vasenReuna; 17 PhysicsObject oikeaReuna; 18 19 IntMeter pelaajan1Pisteet; 20 IntMeter pelaajan2Pisteet; 14 21 15 22 protected override void Begin() … … 17 24 LuoKentta(); 18 25 AsetaOhjaimet(); 26 LisaaLaskurit(); 19 27 AloitaPeli(); 20 28 } … … 28 36 pallo.Restitution = 1.0; 29 37 Add(pallo); 38 AddCollisionHandler(pallo, KasittelePallonTormays); 30 39 31 40 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 32 41 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 33 34 Level.CreateBorders(1.0, false); 35 Level.BackgroundColor = Color.Pink; 42 43 vasenReuna = Level.CreateLeftBorder(); 44 vasenReuna.Restitution = 1.0; 45 vasenReuna.IsVisible = false; 46 oikeaReuna = Level.CreateRightBorder(); 47 oikeaReuna.Restitution = 1.0; 48 oikeaReuna.IsVisible = false; 49 PhysicsObject ylaReuna = Level.CreateTopBorder(); 50 ylaReuna.Restitution = 1.0; 51 ylaReuna.IsVisible = false; 52 PhysicsObject alaReuna = Level.CreateBottomBorder(); 53 alaReuna.Restitution = 1.0; 54 alaReuna.IsVisible = false; 55 56 Level.BackgroundColor = Color.Black; 36 57 37 58 Camera.ZoomToLevel(); 38 59 } 39 60 40 PhysicsObject LuoMaila( double x, double y)61 PhysicsObject LuoMaila(double x, double y) 41 62 { 42 PhysicsObject maila = PhysicsObject.CreateStaticObject( 20.0, 100.0);63 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 43 64 maila.Shape = Shapes.Rectangle; 44 maila.X = x; maila.Y = y; 65 maila.X = x; 66 maila.Y = y; 45 67 maila.Restitution = 1.0; 46 Add( maila ); 68 Add(maila); 69 return maila; 70 } 47 71 48 return maila; 49 } 72 void LisaaLaskurit() 73 { 74 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 75 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 76 } 77 78 IntMeter LuoPisteLaskuri(double x, double y) 79 { 80 IntMeter laskuri = new IntMeter(0); 81 laskuri.MaxValue = 10; 82 ValueDisplay naytto = new ValueDisplay(); 83 naytto.BindTo(laskuri); 84 naytto.X = x; 85 naytto.Y = y; 86 naytto.ValueColor = Color.White; 87 Add(naytto); 88 return laskuri; 89 } 90 91 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 92 { 93 if (kohde == oikeaReuna) 94 { 95 pelaajan1Pisteet.Value += 1; 96 } 97 else if (kohde == vasenReuna) 98 { 99 pelaajan2Pisteet.Value += 1; 100 } 101 } 50 102 51 103 void AloitaPeli() … … 55 107 } 56 108 57 109 void AsetaOhjaimet() 110 { 111 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 112 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 113 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 114 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 58 115 116 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 117 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 118 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 119 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 59 120 60 void AsetaOhjaimet() 61 { 62 Keyboard.Listen( Key.A, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1 ); 63 Keyboard.Listen( Key.A, ButtonState.Released, PysaytaMaila, null, maila1 ); 64 Keyboard.Listen( Key.Z, ButtonState.Down, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1 ); 65 Keyboard.Listen( Key.Z, ButtonState.Released, PysaytaMaila, null, maila1 ); 121 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 122 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 66 123 67 Keyboard.Listen( Key.Up, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2);68 Keyboard.Listen( Key.Up, ButtonState.Released, PysaytaMaila, null, maila2);69 Keyboard.Listen( Key.Down, ButtonState.Down, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2);70 Keyboard.Listen( Key.Down, ButtonState.Released, PysaytaMaila, null, maila2);124 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 125 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 126 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 127 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 71 128 72 Keyboard.Listen( Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet" ); 73 Keyboard.Listen( Key.Escape, ButtonState.Pressed, Exit, "Poistu" ); 129 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 130 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 131 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 132 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 133 134 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 135 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 74 136 } 75 137 76 void LiikutaMailaaYlos(PhysicsObject maila) 138 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 139 { 140 if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 77 141 { 78 if (maila.Y <= Level.Top) 79 { 80 maila.Velocity = Vector.Zero; 81 return; 82 } 83 84 Vector nopeus = new Vector(0, 200); 85 maila.Velocity = nopeus; 142 maila.Velocity = Vector.Zero; 143 return; 144 } 145 if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 146 { 147 maila.Velocity = Vector.Zero; 148 return; 86 149 } 87 150 88 89 void LiikutaMailaaAlas( PhysicsObject maila )90 {91 Vector nopeus = new Vector(0, -200);92 151 maila.Velocity = nopeus; 93 }94 95 void PysaytaMaila( PhysicsObject maila )96 {97 maila.Velocity = Vector.Zero;98 152 } 99 153 } 100 154 } 155 156 157 158 159 160 161 162 101 163 102 164
Note: See TracChangeset
for help on using the changeset viewer.