Changeset 2708
- Timestamp:
- 2012-04-17 09:53:41 (11 years ago)
- Location:
- 2012/JAO/JouniKovanen/ponki
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/JAO/JouniKovanen/ponki/ponki/ponki/ponki.cs
r2680 r2708 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; … … 7 9 using Jypeli.Widgets; 8 10 9 public class ponki : PhysicsGame11 public class Peli : PhysicsGame 10 12 { 13 Vector nopeusYlos = new Vector(0, 200); 14 Vector nopeusAlas = new Vector(0, -200); 15 16 PhysicsObject pallo; 17 PhysicsObject maila1; 18 PhysicsObject maila2; 19 20 PhysicsObject vasenReuna; 21 PhysicsObject oikeaReuna; 22 23 IntMeter pelaajan1Pisteet; 24 IntMeter pelaajan2Pisteet; 25 11 26 public override void Begin() 12 27 { 13 PhysicsObject pallo = new PhysicsObject(40.0, 40.0); 28 LuoKentta(); 29 AsetaOhjaimet(); 30 LisaaLaskurit(); 31 AloitaPeli(); 32 } 33 34 void LuoKentta() 35 { 36 pallo = new PhysicsObject(40.0, 40.0); 14 37 pallo.Shape = Shape.Circle; 15 Add(pallo);16 38 pallo.X = -200.0; 17 39 pallo.Y = 0.0; 18 40 pallo.Restitution = 1.0; 19 20 Level.CreateBorders(1.0, false); 41 pallo.KineticFriction = 0.0; 42 pallo.MomentOfInertia = Double.PositiveInfinity; 43 Add(pallo); 44 AddCollisionHandler(pallo, KasittelePallonTormays); 45 46 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 47 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 48 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 21 66 Level.BackgroundColor = Color.Black; 67 22 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 { 23 118 Vector impulssi = new Vector(500.0, 0.0); 24 119 pallo.Hit(impulssi); 25 26 27 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");28 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");29 }30 void LuoKentta()31 {32 PhysicsObject pallo = new PhysicsObject(40.0, 40.0);33 pallo.Shape = Shape.Circle;34 Add(pallo);35 pallo.X = -200.0;36 pallo.Y = 0.0;37 pallo.Restitution = 1.0;38 39 Level.CreateBorders(1.0, false);40 Level.BackgroundColor = Color.Black;41 Camera.ZoomToLevel();42 43 120 } 44 121 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); 45 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); 46 133 134 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 135 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 47 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); 48 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); 49 146 147 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 148 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 149 } 50 150 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 } 51 163 164 maila.Velocity = nopeus; 165 } 52 166 }
Note: See TracChangeset
for help on using the changeset viewer.