Hola que tal!
Estoy creando un endless runner y creo yo esta listo, a excepcion de este error que no se como solucionarlo.
Y es que mi personaje se queda pegado con los objetos cuando choca! :-X
Busque en el foro, pero les sere honestos, no entendi las sugerencias que hicieron (algunas las probe y no me funcionaron)
(http://i.imgur.com/lMkhfYT.png?1)
Probe modificandole la mascara al pesonaje pero no funciono correctamente.
El codigo que tengo en mi objeto jugador para saltar es el siguiente:
Para poder saltar
if collision_point(mouse_x,mouse_y,obj_boton_saltar,1,0) && !place_free(x,y+1)
{
if mouse_check_button(mb_left)
{
image_speed=0.35;
vspeed = -13
}
}
Para la gravedad
if place_free(x,y+1)
{
image_speed=0.35;
gravity = 0.5
}
else
{
image_speed=0.35;
gravity = 0
}
gravity_direction = 270
Cuando esta tocando algun objeto
if place_meeting(x,y+1,obj_suelo) or place_meeting(x,y+1,obj_suelo2) or place_meeting(x,y+1,obj_suelo3) or place_meeting(x,y+1,obj_obstaculo1)or place_meeting(x,y+1,obj_obstaculo2)
{
gravity=0
}
else
{
sprite_index = Blurp_run;
gravity=0.8
}
Alguna sugerencia para poder verificarla?
Por adelantado, muchas gracias por la ayuda :)
Alguna idea? Sugerencia? :(
Te lo pongo por foto porque en el ordenador donde esta el programa esta aislado de la red.
Tambien te mando como se "mueve" mi personaje... Hay varias formas de que se desplace y algunas, probando, me han ido mejor que otras.
Nos vemos!!
Lo que pasa es que no tienes un código para reaccionar a la colisión, haces que la gravedad valga cero, pero eso no evita que el objeto siga su movimiento hacia adentro del bloque. Además falta el código para el movimiento horizontal.
Antes que nada muchas gracias a los que respondieron mi msje.
[user]Castejoncio[/user], [user]Clamud[/user] por su tiempo. Y a [user]eams1986[/user] por su privado.
No me quedo al 100% pero mejoro un poco. Se queda pegado rara vez (que se debo arreglar ya que si no, no esta bien hecho)
Les contare que hice:
A mi sprite player le marque las dos casillas de Collision Checking
(Precise collision checking y Separate collision mask) ademas de que en las cordenadas de origen de X y Y puse los siguientes valores:
X = width/2
Y = Height-1
Al objeto con que colisiona tambien le marque las casillas de Collision Checking
Y asi, en el objeto player puse:
Step
if(place_free(x,y+1))
{
image_speed=0.35;
gravity=1
}
else
{
image_speed=0.35;
gravity=0
}
if(Estado=0)
{
if collision_point(mouse_x,mouse_y,obj_boton_saltar,1,0) && (vspeed=0)
{
if mouse_check_button(mb_left)
{
Estado=1
vspeed=-15
image_speed=0.35;
}
}
}
Y en la colision con el objeto
if(other.solid=1)
{
vspeed=0
if(Estado=1)
{
Estado=0
}
}
Y en el objeto que colisiona con nuestro jugador, en el step puse
if(obj_blurp_run.y>y)
{
solid=0
}
else
{
solid=1
}
Como nota, ningun objeto debe tener marcada la casilla "Solid"
Y pues esto fue lo que hice y me funciono mejor mi juego, no al 100 repito pero ya mejoro.
Espero que si a alguien le sirve y lo modifica para sus fines, lo dejo para ellos.
Gracias!
(Se siguen aceptando sugerencias para ese pequeñisimo error :-[ )
Amigo en la Y+1 ponle y+5 para evitar errores
Suerte
Gracias amigo. Ha quedado ese detalle...llega a pasar pero es muy raro que se pegue.-.y si lo hace se despega al volver a saltar no como antes jeje.
Gracias por la ayuda!
yo suelo poner y+vspeed normalmente, así sirve aunque la velocidad varíe y no me como el coco cuando me falla según a qué alturaq caiga o como cáiga, me aseguro de que detecta lo justo :P