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