// // Created by Grant Horner on 11/30/25. // #pragma once #include "raymath.h" #include "raylib.h" struct Player : Rectangle { uint8_t lives; double last_hit; [[nodiscard]] Vector2 center() const noexcept; [[nodiscard]] Rectangle rect() const noexcept; [[nodiscard]] bool is_invulnerable(double now) const noexcept; void move(float delta_x, float delta_y); }; enum Direction { UP, DOWN, LEFT, RIGHT }; struct Tear { Tear() noexcept = default; Tear(const Vector2 center, const Direction direction) noexcept : center(center), direction(direction), active(true), starting_center(center) { }; Vector2 center; Direction direction; bool active; Vector2 starting_center; }; struct Enemy { Vector2 center; float radius; float speed; bool alive; };