¡Hola! Yo, como siempre, soy tan noob que no me sale lo básico, entonces vengo a preguntar cosillas.
Primero, tengo hecho este código (al presionar flecha derecha):
image_xscale = -1
if !place_free (x + 4,y) //si hay una pared
{
x = x + 4
image_index = 1
image_index = 0
}
if vk_left
{
speed = 0
}
He hecho lo mismo pero a la inversa al presionar la tecla izquierda, todo va bien.
También he hecho este otro código:
if !place_free (x, y + 2) //colisión vertical
{
vspeed = 0
}
else
{
vspeed = 2
}
Genial. Ahora a hacer los objetos invisibles sólidos. Luego de esto, lo que ocurre es que quiero ponerlos de color para asegurarme de donde están, cambio el sprite, todo bien. Ahora viene el problema y es que al presionar las flechas solamente se gira el personaje (lo del x_scale) pero no se mueve.
Digo "bueno, no hay problema, debe ser el color del sprite" pero, curiosamente, al ponerlo con el sprite invisible, directamente el personaje se va para abajo, ignorando la colisión del objeto.
He llegado a estas suposiciones, que el primer error es que toma el objeto sólido de abajo como la colisión (dejo screenshot de la room), pero al segundo no, ya que no hubo ninguna diferencia entre las propiedades de los sprites.
Como bonus voy a preguntar cómo se podría programar el personaje para su animación de salto, dejo también screenshot (las primeras 2 imágenes son de movimiento, las otras son las de salto).
Gracias de antemano.
EDIT: Primer y segundo error solucionado. Había que borrar los signos de exclamación. Surge nuevo problema: Al caer, el personaje se queda pegado a las paredes. Por cierto, en las escaleras esas que salen en el primer screenshot (son tiles): ¿Cómo hacer que haya un objeto que tenga esa parte sólida y el resto no?
Primero, tengo hecho este código (al presionar flecha derecha):
image_xscale = -1
if !place_free (x + 4,y) //si hay una pared
{
x = x + 4
image_index = 1
image_index = 0
}
if vk_left
{
speed = 0
}
He hecho lo mismo pero a la inversa al presionar la tecla izquierda, todo va bien.
También he hecho este otro código:
if !place_free (x, y + 2) //colisión vertical
{
vspeed = 0
}
else
{
vspeed = 2
}
Genial. Ahora a hacer los objetos invisibles sólidos. Luego de esto, lo que ocurre es que quiero ponerlos de color para asegurarme de donde están, cambio el sprite, todo bien. Ahora viene el problema y es que al presionar las flechas solamente se gira el personaje (lo del x_scale) pero no se mueve.
Digo "bueno, no hay problema, debe ser el color del sprite" pero, curiosamente, al ponerlo con el sprite invisible, directamente el personaje se va para abajo, ignorando la colisión del objeto.
He llegado a estas suposiciones, que el primer error es que toma el objeto sólido de abajo como la colisión (dejo screenshot de la room), pero al segundo no, ya que no hubo ninguna diferencia entre las propiedades de los sprites.
Como bonus voy a preguntar cómo se podría programar el personaje para su animación de salto, dejo también screenshot (las primeras 2 imágenes son de movimiento, las otras son las de salto).
Gracias de antemano.
EDIT: Primer y segundo error solucionado. Había que borrar los signos de exclamación. Surge nuevo problema: Al caer, el personaje se queda pegado a las paredes. Por cierto, en las escaleras esas que salen en el primer screenshot (son tiles): ¿Cómo hacer que haya un objeto que tenga esa parte sólida y el resto no?