Changeset 7725 for 2016/27/AnttiN
- Timestamp:
- 2016-07-04 14:58:22 (7 years ago)
- Location:
- 2016/27/AnttiN/pong
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2016/27/AnttiN/pong/pong/pong/pong.cs
r7684 r7725 9 9 public class pong : PhysicsGame 10 10 { 11 Vector nopeusYlos = new Vector(0, 500); 12 Vector nopeusAlas = new Vector(0, -500); 13 11 14 PhysicsObject pallo; 15 16 PhysicsObject maila1; 17 PhysicsObject maila2; 18 19 const double PALLON_MIN_NOPEUS = 500; 20 21 IntMeter pelaajan1Pisteet; 22 IntMeter pelaajan2Pisteet; 12 23 13 24 public override void Begin() 14 25 { 15 26 LuoKentta(); 27 AloitaPeli(); 28 AsetaOhjaimet(); 29 LisaaLaskurit(); 16 30 17 Vector impulssi = new Vector(300.0, 0.0); 18 pallo.Hit(impulssi); 19 20 21 22 // TODO: Kirjoita ohjelmakoodisi tähän 31 } 23 32 24 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 25 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 33 34 protected override void Update(Time time) 35 { 36 if (pallo != null && Math.Abs(pallo.Velocity.X) < PALLON_MIN_NOPEUS) 37 { 38 pallo.Velocity = new Vector(pallo.Velocity.X * 1.1, pallo.Velocity.Y); 39 } 40 base.Update(time); 26 41 } 27 42 … … 34 49 Add(pallo); 35 50 pallo.Restitution = 1.0; 51 pallo.Color = Color.Blue; 36 52 37 Level.Background.Color = Color.Black; 53 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 54 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 55 56 Level.Background.Color = Color.Green; 38 57 Level.CreateBorders(1.0, false); 39 58 40 59 Camera.ZoomToLevel(); 41 } 60 } 61 62 void AloitaPeli() 63 { 64 65 Vector impulssi = new Vector(500.0, 0.0); 66 pallo.Hit(impulssi); 67 68 } 69 70 PhysicsObject LuoMaila(double x, double y) 71 { 72 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 73 maila.Shape = Shape.Rectangle; 74 maila.X = x; 75 maila.Y = y; 76 maila.Restitution = 1.0; 77 Add(maila); 78 maila.Color = Color.Yellow; 79 return maila; 80 } 81 void AsetaOhjaimet() 82 { 83 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 84 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 85 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 86 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 87 88 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 89 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 90 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 91 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 92 93 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 94 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 95 96 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 97 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 98 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 99 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 100 101 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 102 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 103 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 104 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 105 106 ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 107 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 108 } 109 110 111 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 112 { 113 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 114 { 115 maila.Velocity = Vector.Zero; 116 return; 117 } 118 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 119 { 120 maila.Velocity = Vector.Zero; 121 return; 122 } 123 124 maila.Velocity = nopeus; 125 } 126 127 void LisaaLaskurit() 128 { 129 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 130 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 131 } 132 133 IntMeter LuoPisteLaskuri(double x, double y) 134 { 135 IntMeter laskuri = new IntMeter(0); 136 laskuri.MaxValue = 100; 137 138 Label naytto = new Label(); 139 naytto.BindTo(laskuri); 140 naytto.X = x; 141 naytto.Y = y; 142 naytto.TextColor = Color.White; 143 naytto.BorderColor = Level.Background.Color; 144 naytto.Color = Level.Background.Color; 145 Add(naytto); 146 147 return laskuri; 148 } 42 149 43 150 }
Note: See TracChangeset
for help on using the changeset viewer.