SpaceInvaders minor draw/collide glitches

This commit is contained in:
Patrick Haßel 2021-12-26 23:13:29 +01:00
parent 9eb7d17d6f
commit 10e836c5f8

View File

@ -70,8 +70,11 @@ public:
void step(millis_t dt) override {
stepRockets(dt);
stepInvaders(dt);
collide();
stepHero(dt);
draw();
collide();
if (invadersAlive == 0) {
Serial.println("WINNER!");
reset();
@ -80,13 +83,12 @@ public:
Serial.println("GAME OVER");
reset();
}
draw();
}
void stepRockets(millis_t dt) {
rocketRuntime += dt;
if (rocketRuntime > 200) {
rocketRuntime = 0;
rocketRuntime -= 200;
for (Rocket *rocket = rocketsBegin; rocket < rocketsEnd; rocket++) {
if (rocket->alive) {
if (rocket->y == 0) {
@ -108,7 +110,7 @@ public:
}
if (swarmRuntime >= 1000) {
swarmRuntime = 0;
swarmRuntime -= 1000;
if (swarmLeft) {
swarmX--;
if (swarmX == 0) {
@ -129,7 +131,7 @@ public:
void stepHero(millis_t dt) {
heroRuntime += dt;
if (heroRuntime >= 50) {
heroRuntime = 0;
heroRuntime -= 50;
if (heroLeft) {
heroX--;
if (heroX <= 1) {