Exemplo n.º 1
0
vector2 vector2_next_step(vector2 origin, vector2 target) {
    if(vector2_equals(origin, target)) return origin;

    vector2 delta = vector2_subtract(target, origin);
    int abs_x = abs(delta.x);
    int abs_y = abs(delta.y);

    vector2 movement;

    if(abs_x > abs_y)
        //hay mas distancia en x, nos movemos en x
        movement = vector2_new(delta.x / abs_x, 0);
    else
        //hay mas distancia en y, nos movemos en y
        movement = vector2_new(0, delta.y / abs_y);

    return vector2_add(origin, movement);
}
Exemplo n.º 2
0
int vector2_within_map(vector2 v, vector2 map_limits) {
    return vector2_between(v, vector2_new(0,0), map_limits);
}
Exemplo n.º 3
0
vector2 vector2_new() {
    return vector2_new(0, 0);
}
Exemplo n.º 4
0
static int vector2_ctor(lua_State* L)
{
	LuaStack stack(L);
	stack.remove(1); // Remove table
	return vector2_new(L);
}