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