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