:GMS:
Yo hice la comprobación de esta forma: (https://cdn.discordapp.com/attachments/688828590179090513/697031181023313931/unknown.png)
para hacer que se moviera en cuadrícula, pero lo hice con cada botón de movimiento, me gustaría simplificarlo todo en un bloque de código de gml.
Hola
Experimenta con esto: Crea un proyecto nuevo, creale un objeto y en un evento draw o dibujo colocale este código.
//simulando el evento create con la variable score
repeat(!score)
{
cuadricula_ancho=32
cuadricula_alto=32
columnas_totales=floor(room_width/cuadricula_ancho)
filas_totales=floor(room_height/cuadricula_alto)
x2=0
y2=0
score=1
}
//botones
if(keyboard_check(113)){game_restart()}
b1=keyboard_check(vk_left)
b2=keyboard_check(vk_up)
b3=keyboard_check(vk_right)
b4=keyboard_check(vk_down)
x2+=(b3-b1)*5
y2+=(b4-b2)*5
if(x2<0){x2=0}
if(x2>room_width-cuadricula_ancho*6){x2=room_width-cuadricula_ancho*6}
if(y2<0){y2=0}
if(y2>room_height-cuadricula_alto*9){y2=room_height-cuadricula_alto*9}
x=floor(x2/columnas_totales)*cuadricula_ancho
y=floor(y2/filas_totales)*cuadricula_alto
//dibujo
draw_rectangle(x,y,x+cuadricula_ancho,y+cuadricula_alto)
dy=0
texto=x2
draw_text(0,dy,texto)
dy+=12
Puedes modificar las variables cuadricula_ancho y cuadricula_alto.
Muchísimas gracias :D :D :D!!!!!
https://www.stuffbydavid.com/dnd-to-gml
Cita de: dixon en Abril 08, 2020, 07:56:20 PM
Hola
Experimenta con esto: Crea un proyecto nuevo, creale un objeto y en un evento draw o dibujo colocale este código.
//simulando el evento create con la variable score
repeat(!score)
{
cuadricula_ancho=32
cuadricula_alto=32
columnas_totales=floor(room_width/cuadricula_ancho)
filas_totales=floor(room_height/cuadricula_alto)
x2=0
y2=0
score=1
}
//botones
if(keyboard_check(113)){game_restart()}
b1=keyboard_check(vk_left)
b2=keyboard_check(vk_up)
b3=keyboard_check(vk_right)
b4=keyboard_check(vk_down)
x2+=(b3-b1)*5
y2+=(b4-b2)*5
if(x2<0){x2=0}
if(x2>room_width-cuadricula_ancho*6){x2=room_width-cuadricula_ancho*6}
if(y2<0){y2=0}
if(y2>room_height-cuadricula_alto*9){y2=room_height-cuadricula_alto*9}
x=floor(x2/columnas_totales)*cuadricula_ancho
y=floor(y2/filas_totales)*cuadricula_alto
//dibujo
draw_rectangle(x,y,x+cuadricula_ancho,y+cuadricula_alto)
dy=0
texto=x2
draw_text(0,dy,texto)
dy+=12
Puedes modificar las variables cuadricula_ancho y cuadricula_alto.
Game Maker tiene la función snap_grid(x, y), pasándole entre paréntesis los valores de ancho y alto de la cuadrícula, la función revisa si la instancia está en la cuadrícula o no, y devuelve 1 si lo esta, y 0 si no lo está.