- Timestamp:
- 2010-07-06 14:23:12 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/27/viaawipi/pong/Peli.cs
r1064 r1091 6 6 public class Peli : PhysicsGame 7 7 { 8 Vector nopeusylos = new Vector(0.0, 500.0); 9 Vector nopeusalas = new Vector(0.0, -500.0); 10 11 PhysicsObject vasenreuna; 12 PhysicsObject oikeareuna; 13 8 14 PhysicsObject pallo; 15 PhysicsObject maila1; 16 PhysicsObject maila2; 9 17 18 IntMeter pelaajan1pisteet; 19 IntMeter pelaajan2pisteet; 10 20 protected override void Begin() 11 21 { 12 22 //TODO: Alusta peli tässä 13 23 LuoKentta(); 24 asetaohjaimet(); 25 lisaalaskurit(); 14 26 aloitapeli(); 15 16 17 27 } 18 28 … … 26 36 pallo.Restitution = 1.0; 27 37 28 luomaila(Level.Left + 50.0,0); 29 luomaila(Level.Right - 50.0,0); 38 maila1 = luomaila(Level.Left + 50.0, 0, Angle.Degrees(270)); 39 maila2 = luomaila(Level.Right - 50.0, 0, Angle.Degrees(90)); 40 41 vasenreuna = Level.CreateLeftBorder(); 42 vasenreuna.Restitution = 1.0; 43 vasenreuna.IsVisible = false; 44 PhysicsObject ylareuna = Level.CreateTopBorder(); 45 ylareuna.Restitution = 1.0; 46 ylareuna.IsVisible = false; 47 PhysicsObject alareuna = Level.CreateBottomBorder(); 48 alareuna.Restitution = 1.0; 49 alareuna.IsVisible = false; 50 oikeareuna = Level.CreateRightBorder(); 51 oikeareuna.Restitution = 1.0; 52 oikeareuna.IsVisible = false; 30 53 31 32 Level.CreateBorders(1.0, false);33 54 Level.BackgroundColor = Color.Red; 34 55 35 56 Camera.ZoomToLevel(); 57 AddCollisionHandler(pallo, kasittelepallontormaus); 36 58 } 37 void aloitapeli 59 void aloitapeli() 38 60 { 39 61 Vector impullssi = new Vector(500.0, 1.0); 40 62 pallo.Hit(impullssi); 41 42 43 44 63 } 45 64 46 void luomaila(double x, double y)65 PhysicsObject luomaila(double x, double y, Angle ankle) 47 66 { 48 PhysicsObject maila = PhysicsObject.CreateStaticObject( 20.0, 100.0);49 maila.Shape = Shapes. Circle;67 PhysicsObject maila = PhysicsObject.CreateStaticObject(100.0, 100.0); 68 maila.Shape = Shapes.Triangle; 50 69 maila.X = x; 51 70 maila.Y = y; 52 71 maila.Restitution = 1.0; 72 maila.Angle = ankle; 53 73 Add(maila); 54 74 55 75 return maila; 76 77 } 78 void asetaohjaimet() 79 { 80 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "poistu"); 81 82 Keyboard.Listen(Key.W, ButtonState.Down, asetanopeus, "liikutamaila ylös", maila1, nopeusylos); 83 Keyboard.Listen(Key.W, ButtonState.Released, asetanopeus, null, maila1, Vector.Zero); 84 Keyboard.Listen(Key.S, ButtonState.Down, asetanopeus, "liikutamaila alas", maila1, nopeusalas); 85 Keyboard.Listen(Key.S, ButtonState.Released, asetanopeus, null, maila1,Vector.Zero); 86 87 Keyboard.Listen(Key.Up, ButtonState.Down, asetanopeus, "liikutamaila ylos", maila2, nopeusylos); 88 Keyboard.Listen(Key.Up, ButtonState.Released, asetanopeus, null, maila2,Vector.Zero); 89 Keyboard.Listen(Key.Down, ButtonState.Down, asetanopeus, "liikutamaila alas", maila2, nopeusalas); 90 Keyboard.Listen(Key.Down, ButtonState.Released, asetanopeus, null, maila2,Vector.Zero); 56 91 } 57 92 58 93 void asetanopeus(PhysicsObject maila, Vector nopeus) 94 { 95 if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 96 { 97 maila.Velocity = Vector.Zero; 98 return; 99 } 100 if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 101 { 102 maila.Velocity = Vector.Zero; 103 return; 104 } 105 maila.Velocity = nopeus; 106 } 107 void lisaalaskurit() 108 { 109 pelaajan1pisteet = luopistelaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 110 pelaajan2pisteet = luopistelaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 111 } 112 113 IntMeter luopistelaskuri (double x, double y) 114 { 115 IntMeter laskuri = new IntMeter ( 0 ); 116 laskuri.MaxValue = 10; 117 Label naytto = new Label(); 118 naytto.BindTo(laskuri); 119 naytto.X = x; 120 naytto.Y = y; 121 naytto.TextColor = Color.White; 122 Add(naytto); 123 return laskuri; 124 } 125 void kasittelepallontormaus(PhysicsObject pallo, PhysicsObject kohde) 126 { 127 if ( kohde == vasenreuna ) 128 pelaajan2pisteet.Value ++; 129 130 else if ( kohde == oikeareuna ) 131 pelaajan1pisteet.Value ++; 132 } 59 133 }
Note: See TracChangeset
for help on using the changeset viewer.