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