Changeset 824
- Timestamp:
- 2010-06-14 15:38:38 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/24/Vilvaini/Pongi/Peli.cs
r804 r824 2 2 using Jypeli; 3 3 using Jypeli.ScreenObjects; 4 using Jypeli.Assets;5 4 6 5 public class Peli : PhysicsGame 7 6 { 7 Vector nopeusYlos = new Vector(0, 400); 8 Vector nopeusAlas = new Vector(0, -400); 9 8 10 PhysicsObject pallo; 9 11 PhysicsObject maila1; 10 12 PhysicsObject maila2; 11 13 14 PhysicsObject vasenReuna; 15 PhysicsObject oikeaReuna; 16 17 IntMeter pelaajan1Pisteet; 18 IntMeter pelaajan2Pisteet; 19 12 20 protected override void Begin() 13 21 { 14 //TODO: Alusta peli tässä15 16 22 LuoKentta(); 23 AsetaOhjaimet(); 24 LisaaLaskurit(); 17 25 AloitaPeli(); 18 AsetaOhjaimet();19 20 26 } 21 22 void AsetaOhjaimet()27 28 void LuoKentta() 23 29 { 24 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 30 pallo = new PhysicsObject(40.0, 40.0); 31 pallo.CanRotate = false; 32 pallo.Shape = Shapes.Circle; 33 pallo.X = -200.0; 34 pallo.Y = 0.0; 25 35 26 Keyboard.Listen(Key.A, ButtonState.Pressed, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1); 27 Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null, maila1); 36 pallo.Restitution = 1.0; 37 Add(pallo); 38 AddCollisionHandler(pallo, KasittelePallonTormays); 28 39 40 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 41 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 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; 57 58 Camera.ZoomToLevel(); 29 59 } 30 60 31 61 PhysicsObject LuoMaila(double x, double y) 32 62 { … … 37 67 maila.Restitution = 1.0; 38 68 Add(maila); 39 40 69 return maila; 41 70 } 42 void LiikutaMailaaYlos(PhysicsObject maila) 71 72 void LisaaLaskurit() 43 73 { 44 Vector nopeus = new Vector(0, 200); 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 } 102 103 void AloitaPeli() 104 { 105 Vector impulssi = new Vector(500.0, 0.0); 106 pallo.Hit(impulssi); 107 } 108 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); 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); 120 121 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 122 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 123 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); 128 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"); 136 } 137 138 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 139 { 140 if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 141 { 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; 149 } 150 45 151 maila.Velocity = nopeus; 46 152 } 47 48 void PysaytaMaila(PhysicsObject maila) 49 { 50 maila.Velocity = Vector.Zero; 51 } 52 53 void LuoKentta() 54 { 55 pallo = new PhysicsObject(40.0, 40.0); 56 pallo.Shape = Shapes.Circle; 57 pallo.X = -200.0; 58 pallo.Y = 20.0; 59 Add(pallo); 60 61 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 62 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 63 64 Level.CreateBorders(); 65 Level.BackgroundColor = Color.Black; 66 67 Camera.ZoomToLevel(); 68 } 69 void AloitaPeli() 70 71 { 72 new Vector(10.0, 10.0); 73 Vector impulssi = new Vector(-500.0, -40.0); 74 pallo.Hit(impulssi); 75 } 76 77 } 78 79 153 }
Note: See TracChangeset
for help on using the changeset viewer.