Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Yuki en 28 Noviembre 2019, 10:37 am



Título: Obtener nueva posición del jugador
Publicado por: Yuki en 28 Noviembre 2019, 10:37 am
Bueno, estoy tratando de obtener lo que sería la nueva posición del jugador en base a la posición del mouse relativa a la ventana.

Es decir: quiero que la posición X e Y de un jugador sea ajustada hacia su nueva posición en el mapa/mundo, la cual sería la posición señalada por el mouse sobre la ventana.

Yo actualmente poseeo los siguientes datos:
  • Las dimenciones de la ventana.
  • La posición X e Y del mouse en base a la ventana.
  • La dimensión del mapa.
  • La posición del jugador relativa a la dimensión del mapa.
  • La velocidad de movimiento del jugador.

Código:
local WINDOW_WIDTH = 597
local WINDOW_HEIGHT = 383
local MOUSE_X = 0
local MOUSE_Y = 0
local USER_X = 34.0
local USER_Y = 63.0
local MAP_WIDTH = 71.0
local MAP_HEIGHT = 43.0
local USER_SPEED = 8

-- Mi vano intento por obtener las nuevas coordenadas X e Y.
-- Hice cualquiera xd
local angle = math.atan2(MOUSE_Y - USER_Y,MOUSE_X - USER_X)
local dx,dy = USER_SPEED * math.cos(angle),USER_SPEED * math.sin(angle)
local x,y = dx,dy
print(x,y)

También me encuentro con el dilema de que el mapa y la posición del jugador están en valores flotantes y no sé que dimensión en pixeles representa, aunque creo que es:

Código:
WIDTH = MAP_WIDTH * USER_SPEED 
HEIGHT = MAP_HEIGHT * USER_SPEED

La verdad no tengo la menor idea de como proceder en este caso. ¿alguna sugerencia?