Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Pregunta: ¿Como puedo comprobar si el objeto esta alineada con el grid en gml?  (Leído 336 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Antena

 :GMS:
Yo hice la comprobación de esta forma:
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.

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado dixon

Hola

Experimenta con esto: Crea un proyecto nuevo, creale un objeto y en un evento draw o dibujo colocale este código.

Código: [Seleccionar]
//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.

Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.
 
Los siguientes usuarios dieron las gracias a este tema: Antena


Desconectado Antena

Muchísimas gracias  :D :D :D!!!!!

 
Los siguientes usuarios dieron las gracias a este tema: dixon


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2545
  • Mensajes: 2.088
  • Agradecido: 111 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil

"ola k ase clickarme o k ase"
la imagen no se quita xD
 
Los siguientes usuarios dieron las gracias a este tema: dixon, Antena


Desconectado FernandoNavarro

Hola

Experimenta con esto: Crea un proyecto nuevo, creale un objeto y en un evento draw o dibujo colocale este código.

Código: [Seleccionar]
//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á.

 
Los siguientes usuarios dieron las gracias a este tema: dixon, Antena