diff --git a/games/breakout/breakout.c b/games/breakout/breakout.c index 8e26230..ff11e0e 100644 --- a/games/breakout/breakout.c +++ b/games/breakout/breakout.c @@ -59,38 +59,43 @@ void borg_breakout(uint8_t demomode) ball_spawn_default(&(balls[0])); balls[0].strength = START_LIFES; level_init(level); + uint8_t tick_divider = 0; rebound_init(); while (cycles != 0) { - wait(50); + wait(25); - if (demomode) - rebound_tick(&balls[0]); - else - rebound_tick(NULL); + if ((tick_divider % 2) || JOYISFIRE) + rebound_tick(demomode ? &balls[0] : NULL); - ball_think(&(balls[0])); - playfield_draw(); - ball_draw(&(balls[0])); - if (!balls[0].strength) + if (tick_divider % 2) { - print_score(); - break; - } + ball_think(&(balls[0])); + playfield_draw(); + ball_draw(&(balls[0])); + if (!balls[0].strength) + { + print_score(); + break; + } - if (!level_getscorediff()) - { - level++; - /* respawn ball at rebound position */ - ball_spawn_default (&(balls[0])); - balls[0].strength++; - level_init(level); - rebound_init(); + if (!level_getscorediff()) + { + level++; + /* respawn ball at rebound position */ + ball_spawn_default (&(balls[0])); + balls[0].strength++; + level_init(level); + rebound_init(); + } } if (demomode) --cycles; + + // alternate the value of the tick divider + tick_divider = tick_divider ? 0 : 1; } ignorescore = ignorescore_buffer; diff --git a/games/breakout/config.h b/games/breakout/config.h index e4cd829..ce00d81 100644 --- a/games/breakout/config.h +++ b/games/breakout/config.h @@ -30,7 +30,7 @@ static const int8_t rebound_reflection[6][2] = { 72, -20} /* offside right */ }; -#define DEMO_CYCLES 1200; +#define DEMO_CYCLES 2400; #endif /* CONFIG_H */