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