35 lines
623 B
C++
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
|