Hola a todos, queria ver si me pueden ayudar con esto, en mi juego tengo estos 3 objetos:
- Player
- Enemigo
- Tile enemigo
El tile enemigo es para que el Enemigo vaya de un lado a otro sin caer de la plataforma en que se encuentra, y funciona muy bien, pero como Tile enemigo esta solido, Player reacciona ante la caja de colision y no quiero que lo haga.
¿Hay alguna forma de hacer que Player ignore cuando colisione con Tile enemigo? intente quitandole el solid al Tile Enemigo pero entonces el enemigo ignora el Tile y se cae de la plataforma.
Es raro eso de usar enemigos movibles como sólidos ¿la plataforma es sólida? porque lo correcto es que sí.
otra cosa que se me ocurre es que en el step del tile_enemigo cheques que si la distancia entre éste y el personaje es mejor o igual a 4 se vuelva no sólido, de lo contrario es sólido...
no entiendo cómo funciona el tile enemigo.... lo pones al final de una plataforma ¿no?
si es así, pues quítale el solid, y en el step event del enemigo chekeas que si hay un objeto 'tile enemigo' en la posición x+3 o x-3 (por ejemplo), pues que gire (simplemente que cambie la dirección) no sé si usas gml o drag&drop, sino te ponía aquí un código en gml para que lo usaras...
si quieres que te lo ponga, pues dímelo, o haz lo que te dije arriba con acciones (en drag & drop), aver si te funciona :P
salu2 ;)
Cita de: darius en Julio 10, 2013, 05:29:17 PM
no entiendo cómo funciona el tile enemigo.... lo pones al final de una plataforma ¿no?
si es así, pues quítale el solid, y en el step event del enemigo chekeas que si hay un objeto 'tile enemigo' en la posición x+3 o x-3 (por ejemplo), pues que gire (simplemente que cambie la dirección) no sé si usas gml o drag&drop, sino te ponía aquí un código en gml para que lo usaras...
si quieres que te lo ponga, pues dímelo, o haz lo que te dije arriba con acciones (en drag & drop), aver si te funciona :P
salu2 ;)
Si me sirve en codigo, si lo pones me ayudarias, y si, el tile enemigo va al final de las plataformas
ok, entonces en el step event del enemigo pones esto:
if collision_point(x+3,y,tile_enemigo) or collision_point(x-3,y,tile_enemigo)
hspeed*=-1
esto chekea si hay una collisión a la derecha o a la izquierda con el, y si ese es el caso pues se da la vuelta, lo que no sé es como controlas el movimiento del enemigo, es decir, qué variables usas para mover el enemigo?
no sé si usas la variable speed para darle movimiento, porque si no es así el código no te serviría, debes de indicármelo
Este es el codigo que el enemigo tiene en su step para el movimiento:
if place_free(x+hsp,y)
{x+=hsp}
else
{hsp=-hsp}
Y para la colision con el tile tiene este:
if vspeed>0 && !place_free(x,y+vspeed)
{move_contact(270)}
vspeed=0