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