spacebox/src/Location.hpp

35 lines
623 B
C++

#ifndef Location_h_
#define Location_h_
#include <iostream>
#include <SDL.h>
#define GLM_ENABLE_EXPERIMENTAL
#include "glm/common.hpp"
#include "glm/vec2.hpp"
struct Location
{
SDL_Rect rect = {0, 0, 0, 0};
glm::vec2 overflow;
Location() { };
int get_x();
int get_y();
std::string get_class_name() { return "Location"; }
template<typename T1, typename T2>
void move_ip(T1 dx, T2 dy = 0)
{
overflow += glm::vec2(dx, dy);
glm::vec2 motion = glm::floor(overflow);
overflow -= motion;
rect.x += motion[0];
rect.y += motion[1];
}
};
#endif