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