Changeset 927
- Timestamp:
- 2010-06-16 21:55:24 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/24/tekrjant/Laskuvarjo/Peli.cs
r925 r927 37 37 38 38 LuoMaasto(); 39 LuoTalo t();39 LuoTalo(); 40 40 LisaaPilvet(); 41 41 … … 48 48 pelaaja.X = 0; 49 49 pelaaja.Y = Level.Top - 100; 50 //pelaaja.X = -200; 51 //pelaaja.Y = Level.Bottom + 20; 50 52 Add(pelaaja); 51 53 … … 101 103 { 102 104 SuljeLaskuvarjo(); 103 104 MessageDisplay.Add("nopeus: " + pelaaja.Velocity.Y);105 105 106 106 if (Math.Abs(pelaaja.Velocity.Y) > 200) … … 173 173 } 174 174 175 void LuoTalot() 176 { 177 LuoTalo(200, 100, 0); 178 } 179 180 void LuoTalo(double leveys, double korkeus, double x) 175 void LuoTalo() 176 { 177 LuoKerros( 200, 100, 0, Level.Bottom ); 178 LuoKerros( 200, 100, 0, Level.Bottom + 100 ); 179 LuoKerros( 200, 100, 0, Level.Bottom + 200 ); 180 LuoKerros( 200, 100, 0, Level.Bottom + 300 ); 181 LuoKerros( 200, 100, 0, Level.Bottom + 400 ); 182 } 183 184 void LuoKerros(double leveys, double korkeus, double x, double y) 181 185 { 182 186 double left = x - leveys / 2; 183 187 double right = x + leveys / 2; 184 double kat toParrunPaksuus = 20;185 186 GameObject seina = new GameObject(leveys, korkeus);187 seina.Image = seinanKuva;188 seina.X = x;189 seina.Y = Level.Bottom+ korkeus / 2;190 seina.TextureWrapSize = new Vector(leveys / 64, korkeus / 64);191 Add( seina);192 193 PhysicsObject vasenSeina = Luo Parru(20, korkeus - kattoParrunPaksuus / 2);188 double katonPaksuus = 20; 189 190 GameObject takaSeina = new GameObject(leveys, korkeus); 191 takaSeina.Image = seinanKuva; 192 takaSeina.X = x; 193 takaSeina.Y = y + korkeus / 2; 194 takaSeina.TextureWrapSize = new Vector(leveys / 64, korkeus / 64); 195 Add(takaSeina); 196 197 PhysicsObject vasenSeina = LuoSeina(20, korkeus - katonPaksuus); 194 198 vasenSeina.X = left + vasenSeina.Width / 2; 195 vasenSeina.Y = Level.Bottom+ vasenSeina.Height / 2;196 197 PhysicsObject oikeaSeina = Luo Parru(20, korkeus - kattoParrunPaksuus / 2);199 vasenSeina.Y = y + vasenSeina.Height / 2; 200 201 PhysicsObject oikeaSeina = LuoSeina(20, korkeus - katonPaksuus); 198 202 oikeaSeina.X = right - oikeaSeina.Width / 2; 199 oikeaSeina.Y = Level.Bottom + oikeaSeina.Height / 2; 200 201 PhysicsObject keskiParru = LuoParru(30, korkeus - kattoParrunPaksuus / 2); 202 keskiParru.X = x; 203 keskiParru.Y = Level.Bottom + keskiParru.Height / 2; 204 205 PhysicsObject kattoParru1 = LuoParru(leveys / 2, kattoParrunPaksuus); 206 kattoParru1.X = x - leveys / 4; 207 kattoParru1.Y = Level.Bottom + korkeus; 208 209 PhysicsObject kattoParru2 = LuoParru(leveys / 2, kattoParrunPaksuus); 210 kattoParru2.X = x + leveys / 4; 211 kattoParru2.Y = Level.Bottom + korkeus + 10; 212 } 213 214 PhysicsObject LuoParru(double leveys, double korkeus) 215 { 216 PhysicsObject parru = new PhysicsObject(leveys, korkeus); 203 oikeaSeina.Y = y + oikeaSeina.Height / 2; 204 205 PhysicsObject vasenTukiPalkki = PhysicsObject.CreateStaticObject( 20, 20 ); 206 vasenTukiPalkki.X = left + vasenSeina.Width + vasenTukiPalkki.Width / 2; 207 vasenTukiPalkki.Y = y + korkeus - katonPaksuus - vasenTukiPalkki.Height / 2; 208 vasenTukiPalkki.Color = Color.Black; 209 Add( vasenTukiPalkki ); 210 211 PhysicsObject oikeaTukiPalkki = PhysicsObject.CreateStaticObject( 20, 20 ); 212 oikeaTukiPalkki.X = right - oikeaSeina.Width - oikeaTukiPalkki.Width / 2; 213 oikeaTukiPalkki.Y = y + korkeus - katonPaksuus - oikeaTukiPalkki.Height / 2; 214 oikeaTukiPalkki.Color = Color.Black; 215 Add( oikeaTukiPalkki ); 216 217 PhysicsObject katto = LuoKatto( leveys, katonPaksuus ); 218 katto.X = x; 219 katto.Y = y + korkeus - katto.Height / 2; 220 } 221 222 PhysicsObject LuoSeina( double leveys, double korkeus) 223 { 224 PhysicsObject seina = PhysicsObject.CreateStaticObject( leveys, korkeus, Shapes.Rectangle, CollisionShapeQuality.FromValue( 0.8 ) ); 225 seina.KineticFriction = 0.0; 226 seina.Restitution = 0.1; 227 seina.Color = Color.Brown; 228 Add( seina ); 229 return seina; 230 } 231 232 PhysicsObject LuoKatto(double leveys, double korkeus) 233 { 234 PhysicsObject parru = new PhysicsObject(leveys, korkeus, Shapes.Rectangle, CollisionShapeQuality.FromValue(0.8)); 217 235 parru.Mass = 500; 218 236 parru.AngularDamping = 0.95; … … 223 241 parru.Color = Color.Brown; 224 242 Add(parru); 243 AddCollisionHandler( parru, kattoonOsuu ); 225 244 return parru; 245 } 246 247 void kattoonOsuu( PhysicsObject katto, PhysicsObject toinen ) 248 { 249 if ( katto.Width > 50 && Math.Abs(toinen.Velocity.Y) > 100 ) 250 { 251 toinen.Velocity = new Vector( toinen.Velocity.X, toinen.Velocity.Y * 0.6 ); 252 katto.Destroy(); 253 254 PhysicsObject pala1 = LuoKatto( katto.Width * 0.3, katto.Height ); 255 pala1.X = katto.X - katto.Width * 0.15; 256 pala1.Y = katto.Y; 257 258 PhysicsObject pala2 = LuoKatto( katto.Width * 0.3, katto.Height ); 259 pala2.X = katto.X + katto.Width * 0.15; 260 pala2.Y = katto.Y; 261 } 226 262 } 227 263 … … 246 282 Keyboard.Listen(Key.Left, ButtonState.Released, pelaaja.StopHorizontal, null); 247 283 Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja.StopHorizontal, null); 248 Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, null, 10000.0);284 Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, null, 20000.0); 249 285 } 250 286 … … 263 299 void pelaajaMatalalle() 264 300 { 301 pelaaja.X = 0; 265 302 pelaaja.Y = Level.Bottom + 1500; 266 303 }
Note: See TracChangeset
for help on using the changeset viewer.