Changeset 843 for 2010/24/malaleht
- Timestamp:
- 2010-06-15 11:30:51 (13 years ago)
- Location:
- 2010/24/malaleht
- Files:
-
- 22 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/24/malaleht/pong1/Peli.cs
r809 r843 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, 1000); 8 Vector nopeusAlas = new Vector(0, -1000); 9 10 PhysicsObject pallo; 11 PhysicsObject maila1; 12 PhysicsObject maila2; 13 14 PhysicsObject vasenReuna; 15 PhysicsObject oikeaReuna; 16 17 IntMeter pelaajan1Pisteet; 18 IntMeter pelaajan2Pisteet; 19 8 20 protected override void Begin() 9 21 { 10 //TODO: Alusta peli tässä 11 22 LuoKentta(); 23 AsetaOhjaimet(); 24 LisaaLaskurit(); 25 AloitaPeli(); 26 } 12 27 13 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 14 maila.Shape = Shapes.Rectangle; 15 maila.X = Level.Left + 20.0; 16 maila.Y = 0.0; 17 maila.Restitution = 1.0; 18 Add(maila); 19 20 Level.BackgroundColor = Color.Turquoise; 21 PhysicsObject maila2 = PhysicsObject.CreateStaticObject(20.0, 100.0); 22 maila2.Shape = Shapes.Rectangle; 23 maila2.X = Level.Right - 20.0; 24 maila2.Y = 0.0; 25 maila2.Restitution = 1.0; 26 Add(maila2); 27 28 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 29 luokenttä(); 30 } 31 32 33 void luokenttä() 34 { 35 PhysicsObject pallo = new PhysicsObject(40.0, 40.0); 36 37 Vector impulssi = new Vector( 50.0, 0.0 ); 38 pallo.Hit( impulssi ); 39 28 void LuoKentta() 29 { 30 pallo = new PhysicsObject(40.0, 40.0); 40 31 pallo.Shape = Shapes.Circle; 41 32 pallo.X = -200.0; 42 33 pallo.Y = 0.0; 43 pallo.Restitution = 1.0;34 pallo.Restitution = 5.0; 44 35 Add(pallo); 36 AddCollisionHandler(pallo, KasittelePallonTormays); 45 37 pallo.Color = Color.Pink; 46 Vector qwerty = new Vector(-20,55) ; 47 pallo.Hit(qwerty); 48 Level.CreateBorders(1.0, false); 49 Level.BackgroundColor = Color.Black; 38 39 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 40 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 41 42 vasenReuna = Level.CreateLeftBorder(); 43 vasenReuna.Restitution = 1.0; 44 vasenReuna.IsVisible = false; 45 oikeaReuna = Level.CreateRightBorder(); 46 oikeaReuna.Restitution = 1.0; 47 oikeaReuna.IsVisible = false; 48 PhysicsObject ylaReuna = Level.CreateTopBorder(); 49 ylaReuna.Restitution = 1.0; 50 ylaReuna.IsVisible = false; 51 PhysicsObject alaReuna = Level.CreateBottomBorder(); 52 alaReuna.Restitution = 1.0; 53 alaReuna.IsVisible = false; 54 55 Level.BackgroundColor = Color.SkyBlue; 50 56 51 57 Camera.ZoomToLevel(); 58 } 52 59 53 60 PhysicsObject LuoMaila(double x, double y) 61 { 62 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 63 maila.Shape = Shapes.Rectangle; 64 maila.X = x; 65 maila.Y = y; 66 maila.Restitution = 5.0; 67 Add(maila); 68 return maila; 69 maila.Color = Color.Turquoise; 70 } 54 71 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; 55 96 } 56 97 else if (kohde == vasenReuna) 98 { 99 pelaajan2Pisteet.Value += 1; 100 } 101 } 57 102 103 void AloitaPeli() 104 { 105 Vector impulssi = new Vector(500.0, 0.0); 106 pallo.Hit(impulssi); 107 } 58 108 59 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); 60 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); 61 120 62 void asetaohjaimet(); 63 { 64 Keyboard.Listen( Key.A, ButtonState.Pressed, , liikuta maila ylos "Pelaaja 1: Liikuta mailaa ylös" ); 65 Keyboard.Listen( Key.A, ButtonState.Released, PysaytaMaila, null ); 66 67 Keyboard.Listen( Key.Escape, ButtonState.Pressed, Exit, "Poistu" ); 68 } 121 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 122 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 69 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); 70 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 < 100) && (maila.Y < Level.Bottom)) 141 { 142 maila.Velocity = Vector.Zero; 143 return; 144 } 145 if ((nopeus.Y > 100) && (maila.Y > Level.Top)) 146 { 147 maila.Velocity = Vector.Zero; 148 return; 149 } 150 151 maila.Velocity = nopeus; 152 } 71 153 }
Note: See TracChangeset
for help on using the changeset viewer.