Changeset 8123
- Timestamp:
- 2016-07-26 14:59:51 (7 years ago)
- Location:
- 2016/30/JuhaniP
- Files:
-
- 56 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2016/30/JuhaniP/FysiikkaPeliräjähdys/FysiikkaPeliräjähdys/FysiikkaPeliräjähdys/FysiikkaPeliräjähdys.cs
r8088 r8123 9 9 public class FysiikkaPeliräjähdys : PhysicsGame 10 10 { 11 PhysicsObject pallo; 11 Vector nopeusYlos = new Vector(0, 200); 12 Vector nopeusAlas = new Vector(0, -200); 13 IntMeter pelaajan1Pisteet; 14 IntMeter pelaajan2Pisteet; 15 PhysicsObject pallo; 16 17 PhysicsObject vasenReuna; 18 PhysicsObject oikeaReuna; 19 20 PhysicsObject maila1; 21 PhysicsObject maila2; 12 22 public override void Begin() 13 23 { 14 24 LuoKentta(); 15 25 AloitaPeli(); 16 Vector impulssi = new Vector(500.0, 0.0);17 pallo.Hit(impulssi);26 LisaaLaskurit(); 27 AsetaOhjaimet(); 18 28 19 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 20 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 29 30 21 31 } 22 32 void LuoKentta() 23 33 { 34 24 35 pallo = new PhysicsObject(40.0, 40.0); 25 36 Add(pallo); 37 AddCollisionHandler(pallo, KasittelePallonTormays); 26 38 pallo.Shape = Shape.Circle; 27 39 pallo.X = -200.0; 28 40 pallo.Y = 0.0; 29 Level.CreateBorders(1.0, false); 41 oikeaReuna = Level.CreateRightBorder(); 42 oikeaReuna.Restitution = 1.0; 43 oikeaReuna.IsVisible = false; 44 vasenReuna = Level.CreateLeftBorder(); 45 vasenReuna.Restitution = 1.0; 46 vasenReuna.IsVisible = false; 47 PhysicsObject ylaReuna = Level.CreateTopBorder(); 48 ylaReuna.Restitution = 1.0; 49 ylaReuna.IsVisible = false; 50 PhysicsObject alaReuna = Level.CreateBottomBorder(); 51 alaReuna.Restitution = 1.0; 52 alaReuna.IsVisible = false; 30 53 pallo.Restitution = 1.0; 54 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 55 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 56 57 31 58 Camera.ZoomToLevel(); 32 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 33 maila.Shape = Shape.Rectangle; 34 maila.X = Level.Left + 20.0; 35 maila.Y = 0.0; 36 maila.Restitution = 1.0; 37 Add(maila); 38 LuoMaila(Level.Left + 20.0, 0.0); 39 LuoMaila(Level.Right - 20.0, 0.0); 59 40 60 41 61 } … … 45 65 pallo.Hit(impulssi); 46 66 } 47 voidLuoMaila(double x, double y)67 PhysicsObject LuoMaila(double x, double y) 48 68 { 49 69 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); … … 53 73 maila.Restitution = 1.0; 54 74 Add(maila); 75 return maila; 55 76 } 56 77 void AsetaOhjaimet() 57 78 { 79 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: LiikutaMaila1Ylos", maila1, nopeusYlos); 80 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 81 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 82 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 83 84 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 85 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 86 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 87 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 88 89 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 90 91 92 58 93 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 59 94 } 95 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 96 { 97 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 98 { 99 maila.Velocity = Vector.Zero; 100 return; 101 } 102 103 maila.Velocity = nopeus; 104 } 105 void LisaaLaskurit() 106 { 107 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 108 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); // ... 109 } 110 IntMeter LuoPisteLaskuri(double x,double y) 111 { 112 IntMeter laskuri = new IntMeter(0); 113 laskuri.MaxValue = 10; 114 Label naytto = new Label(); 115 naytto.BindTo(laskuri); 116 naytto.X = x; 117 naytto.Y = y; 118 naytto.TextColor = Color.White; 119 naytto.BorderColor = Level.Background.Color; 120 naytto.Color = Level.Background.Color; 121 Add(naytto); 122 123 return laskuri; 124 } 125 126 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 127 { 128 if (kohde == oikeaReuna) 129 { 130 pelaajan1Pisteet.Value += 1; 131 } 132 else if (kohde == vasenReuna) 133 { 134 pelaajan2Pisteet.Value += 1; 135 } 136 } 137 } 60 138 61 139 62 } 140 141 142 143 144
Note: See TracChangeset
for help on using the changeset viewer.