ShmupWorld: pad screen bounds for reaping objects

This commit is contained in:
Colin McMillen 2020-11-30 15:34:59 -05:00
parent 0f5f7b84f7
commit b5853828bd

View File

@ -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);
} }