 Timestamp:
 20140722 15:01:53 (6 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

2014/30/ToukoA/Pong/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs
r5512 r5543 17 17 PhysicsObject vasenReuna; 18 18 PhysicsObject oikeaReuna; 19 PhysicsObject aariVasenReuna; 20 PhysicsObject aariOikeaReuna; 19 21 20 22 IntMeter pelaajan1Pisteet; … … 23 25 { 24 26 LuoKentta(); 27 LuoPallo(); 25 28 AsetaOhjaimet(); 26 29 LisaaLaskurit(); … … 29 32 void LuoKentta() 30 33 { 31 //Itse pallo32 pallo = new PhysicsObject(50.0, 50.0);33 pallo.Shape = Shape.Triangle;34 pallo.X = 200;35 pallo.Y = 0.0;36 pallo.Restitution = 10.0;37 Add(pallo);38 AddCollisionHandler(pallo, KasittelePallonTormays);39 40 34 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 41 35 maila2 = LuoMaila(Level.Right  20.0, 0.0); 42 36 37 //Äärimmäinen vasen reuna 38 aariVasenReuna = Level.CreateLeftBorder(); 39 aariVasenReuna.X = 700.0; 40 aariVasenReuna.Restitution = 2.0; 41 aariVasenReuna.IsVisible = true; 42 //Äärimmäinen oikea reuna 43 aariOikeaReuna = Level.CreateRightBorder(); 44 aariOikeaReuna.X = 700.0; 45 aariOikeaReuna.Restitution = 2.0; 46 aariOikeaReuna.IsVisible = true; 43 47 //Vasen reuna 44 48 vasenReuna = Level.CreateLeftBorder(); 49 vasenReuna.Y = 100; 45 50 vasenReuna.Restitution = 1.0; 46 51 vasenReuna.IsVisible = true; … … 48 53 //Oikea reuna 49 54 oikeaReuna = Level.CreateRightBorder(); 55 oikeaReuna.Y = 100; 50 56 oikeaReuna.Restitution = 1.0; 51 57 oikeaReuna.IsVisible = true; … … 75 81 maila.X = x; 76 82 maila.Y = y; 77 maila.Restitution = 1 0.0;83 maila.Restitution = 1.0; 78 84 Add(maila); 79 85 return maila; … … 101 107 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 102 108 { 103 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom))109 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 104 110 { 105 111 maila.Velocity = Vector.Zero; 106 112 return; 107 113 } 108 if ((nopeus.Y > 0) && (maila.Top > Level.Top))114 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 109 115 { 110 116 maila.Velocity = Vector.Zero; … … 121 127 { 122 128 IntMeter laskuri = new IntMeter(0); 123 laskuri.MaxValue = 10;129 laskuri.MaxValue = 50; 124 130 125 131 Label naytto = new Label(); … … 137 143 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 138 144 { 145 if ((kohde.Y < 0) && (kohde.Bottom < Level.Bottom)) 146 { 147 kohde.Velocity = Vector.Zero; 148 } 149 if ((kohde.Y > 0) && (kohde.Top > Level.Top)) 150 { 151 kohde.Velocity = Vector.Zero; 152 } 153 if (kohde == aariOikeaReuna) 154 { 155 //Tuhoaa pallon ja luo sen uudestaan 156 pallo.Destroy(); 157 maila1.Destroy(); 158 maila2.Destroy(); 159 LuoPallo(); 160 AloitaPeli(); 161 } 162 if (kohde == aariVasenReuna) 163 { 164 //Tuhoaa pallon ja luo sen uudestaan 165 pallo.Destroy(); 166 maila1.Destroy(); 167 maila2.Destroy(); 168 LuoKentta(); 169 LuoPallo(); 170 AsetaOhjaimet(); 171 AloitaPeli(); 172 } 139 173 if (kohde == oikeaReuna) 140 174 { … … 145 179 pelaajan2Pisteet.Value += 1; 146 180 } 147 //Right reuna yritys 148 // if (kohde == Right) 149 // pallo.Velocity = Vector.Zero; 150 // return; 151 } 152 153 181 182 if (kohde == aariOikeaReuna) 183 { 184 pelaajan1Pisteet.Value += 10; 185 } 186 187 if (kohde == aariVasenReuna) 188 { 189 pelaajan2Pisteet.Value += 10; 190 } 191 } 192 void LuoPallo() 193 { 194 //Itse pallo 195 196 pallo = new PhysicsObject(50.0, 50.0); 197 pallo.Shape = Shape.Circle; 198 pallo.X = 200; 199 pallo.Y = 0.0; 200 pallo.Restitution = 10.0; 201 Add(pallo); 202 AddCollisionHandler(pallo, KasittelePallonTormays); 203 } 204 const double PALLON_MIN_NOPEUS = 600; 205 206 protected override void Update(Time time) 207 { 208 if (pallo != null && Math.Abs(pallo.Velocity.X) < PALLON_MIN_NOPEUS) 209 { 210 pallo.Velocity = new Vector(pallo.Velocity.X * 1.1, pallo.Velocity.Y); 211 } 212 base.Update(time); 213 } 154 214 }
Note: See TracChangeset
for help on using the changeset viewer.