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