barry.c 993 B

1234567891011121314151617181920212223242526272829303132
  1. #include "barry.h"
  2. #include "game_sprites.h"
  3. #include <gui/gui.h>
  4. #include <furi.h>
  5. void barry_tick(BARRY* const barry) {
  6. // Do jetpack things
  7. barry->gravity += GRAVITY_TICK;
  8. barry->point.y += barry->gravity;
  9. // Constrain barry's height within sprite_height and 64 - sprite_height
  10. if(barry->point.y > (64 - BARRY_HEIGHT)) {
  11. barry->point.y = 64 - BARRY_HEIGHT;
  12. barry->gravity = 0; // stop upward momentum
  13. } else if(barry->point.y < 0) {
  14. barry->point.y = 0;
  15. barry->gravity = 0; // stop downward momentum
  16. }
  17. if(barry->isBoosting) {
  18. barry->gravity += GRAVITY_BOOST;
  19. }
  20. }
  21. void draw_barry(const BARRY* barry, Canvas* const canvas, const GameSprites* sprites) {
  22. canvas_set_color(canvas, ColorBlack);
  23. canvas_draw_icon_animation(canvas, barry->point.x, barry->point.y, sprites->barry);
  24. canvas_set_color(canvas, ColorWhite);
  25. canvas_draw_icon(canvas, barry->point.x, barry->point.y, sprites->barry_infill);
  26. }