X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fcarfire;a=blobdiff_plain;f=CarFire%2FCarFire%2FCarFire%2FDisplay.cs;h=ee694fa5a19d7c1f6834393ea499626a30c306c2;hp=d40c7e80c87d928b29394791d8b46c1bcacd5ffe;hb=28083981691edbfba1d85f0fa6711f70a4e97ed0;hpb=6f4eff30ee197a57bbedb2067f94b12ab0d69d48 diff --git a/CarFire/CarFire/CarFire/Display.cs b/CarFire/CarFire/CarFire/Display.cs index d40c7e8..ee694fa 100644 --- a/CarFire/CarFire/CarFire/Display.cs +++ b/CarFire/CarFire/CarFire/Display.cs @@ -107,16 +107,20 @@ namespace CarFire mMap.CenterCell = new Vector2(mCharacters[0].GridX, mCharacters[0].GridY); #endif - + //Handle projectiles - update and check for wall collisions for (int i = 0; i < mProjectiles.Count; i++ ) { - mProjectiles[i].Update(timespan); + bool removed = false; if (!mMap.IsCellOpen(new Point(mProjectiles[i].GridX, mProjectiles[i].GridY))) { mProjectiles.RemoveAt(i); + removed = true; i--; } + if(!removed) + mProjectiles[i].Update(timespan); + } //Check for collisons for (int j = 0; j < mCharacters.Length; j++) @@ -153,6 +157,17 @@ namespace CarFire mMap.CenterCell = new Vector2(mCharacters[0].GridX, mCharacters[0].GridY); } } + //Handle wall collisions of projectiles again... + for (int i = 0; i < mProjectiles.Count; i++) + { + if (!mMap.IsCellOpen(new Point(mProjectiles[i].GridX, mProjectiles[i].GridY))) + { + + mProjectiles.RemoveAt(i); + i--; + } + + } } ///