Browse Source

ShmupWorld: pad screen bounds for reaping objects

main
Colin McMillen 3 years ago
parent
commit
b5853828bd
  1. 10
      Shared/ShmupWorld.cs

10
Shared/ShmupWorld.cs

@ -89,15 +89,19 @@ namespace SemiColinGames {
} }
public void Update(float modelTime, History<Input> input) { public void Update(float modelTime, History<Input> input) {
// Update player & shots.
ProfilingList<Shot> newPlayerShots = Player.Update(modelTime, input, Bounds); ProfilingList<Shot> newPlayerShots = Player.Update(modelTime, input, Bounds);
foreach (Shot shot in Shots) { foreach (Shot shot in Shots) {
shot.Update(modelTime); shot.Update(modelTime);
} }
// Add new shots.
Shots.AddRange(newPlayerShots); Shots.AddRange(newPlayerShots);
// TODO: inflate bounds rectangle
Shots.RemoveAll(shot => !Bounds.Intersects(shot.Bounds));
// Reap off-screen objects.
Rectangle paddedBounds = Bounds;
paddedBounds.Inflate(16, 16);
Shots.RemoveAll(shot => !paddedBounds.Intersects(shot.Bounds));
Debug.AddToast("shots: " + Shots.Count); Debug.AddToast("shots: " + Shots.Count);
} }

Loading…
Cancel
Save