Hola, hace poco empece con un juego tipo Zelda y quiero hacer que los enemigos vayan a por mi esquivando los objetos solidos y que adenas dependiendo de en que direccion vayan se ponga un grafico u otro...
Esa decir, una ara?a que si tu te encuentras a su derecha se ponga el grafico de lsa derecha y vaya hacia ti, luego al colisionar con tigo te ir? quitando viadas...

Muchas gracias, no se se si puede hacer o no, si se puede pasadme un codigo...
.
MIS JUEGOS
_____________________________________________________________________________________________________________

1? Pang Espacial 1.0

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=2227

Te dejo un ejemplo que encontre, tiene lo de seguir pero no lo de cambiar de sprite, pero no creo que te sea dificil hacerlo.

Muchas gracias, por el momento no tengo internet en el ordena asi que ya te dire si me sirve cuando me lo pueda decargar...
.
MIS JUEGOS
_____________________________________________________________________________________________________________

1? Pang Espacial 1.0

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=2227

Muchas gracias, ya lo he descargado y me sirve, me encanta...
Solo tengo una duda, por que de c?digo no entiendo mucho, como hago para que esquive m?s de un tipo de pared es que tengo 3 o 4 tipos por el momento...

Adem?s de que no se hacer para que cambie el sprite dependiendo de la direcci?n a la que va, esto no es del todo necesario, pero si sabes como hacerlo dimelo...

Muchas gracias por todo
.
MIS JUEGOS
_____________________________________________________________________________________________________________

1? Pang Espacial 1.0

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=2227

Eso del sprite tendria que ser algo como:

[gml]
if Enemigo.x > Jugador.x
{
image_index = 1 //Suponiendo que la image1 fuera la que mira hacia la izquierda.
}
else
{
image_index = 0 //Suponiendo que la image1 fuera la que mira hacia la derecha.
}

//Lo que hace este codigo es verificar si Enemigo.x (La "x" del enemigo) es mayor que Jugador.x (La "x" del jugador).
//Si esto fuera cierto, se tendria que poner la imagen del enemigo hacia la izquierda, ya que si el enemigo tiene "Mas x" significa que esta a la derecha del jugador.
//Si esto no fuera cierto, se tendria que poner la imagen del enemigo hacia la derecha, ya que si tiene "Menos x" significa que esta a la izquierda del juegador
[/gml]

NOTA: No se si ta va a funcionar asi nomas en ese ejemplo, quizas lo tengas que adaptar un poco, pero asi seria la forma mas simple, creo yo.

Saludos!

Si, ser?a eso, pero como hago para que en vez de cambiar a la primera imagen del sprite, cambie de sprite, es decir.

Siento por mi torpeza, pero con c?digos no se hacerlo...
.
MIS JUEGOS
_____________________________________________________________________________________________________________

1? Pang Espacial 1.0

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=2227

Puedes hacerlo con la siguiente funcion:

[gml]
//Sentencia:
sprite_assign(ind,source)
//Ejemplo
sprite_assign(0,sprite1)
[/gml]

Haber, que me entere...

Mis gr?ficos son:

spr_personaje_up Andando para arriba
spr_personaje_dw Andando para abajo
spr_personaje_izq Andando para la izquierda
spr_personaje_der Andando para la derecha

Me puedes poner el c?digo directamente con estos gr?ficos...

Yo lo he hecho as?, pero se que esta mal...
[gml]if obj_enemigo.x > obj_jugador.x
{
sprite_assign(0,spr_enemigo_izq)
}
else
{
sprite_assign(0,spr_enemigo_der)
}

if obj_enemigo.y > obj_jugador.y
{
sprite_assign(0,spr_enemigo_up)
}
else
{
sprite_assign(0,spr_enemigo_dw)
}[/gml]
.
MIS JUEGOS
_____________________________________________________________________________________________________________

1? Pang Espacial 1.0

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=2227

Si te digo la verdad yo tambien tengo una duda con esa sentencia, me parece que el primer "0" indica el index del sprite, no el numero de la imagen.

Osea, no es como image_index()
Es cuando creas el primer sprite tiene el index 0, cuando creas otro el 1, y asi. Assi que ese "0" lo deberas cambiar por el correspondiente.

Pasate por el manual que seguro hay una sentencia para conseguir el index de cada sprite. Y sino, lo tendras que ver a mano

Bueno pues no se por que usan la funcion sprite_assign() que lo que hace es crear una copia del sprite, si lo ?nico que quieren hacer es cambiar de sprite, para es lo ?nico que tienen que hacer es usar la variable sprite_index y asignar all? el nombre del sprite.

Ejemplo
[gml]sprite_index=spr_enemigo_izq[/gml]

y listo as? se cambia de sprite.

Cita de: brunoxzx en Agosto 03, 2011, 11:26:06 PM
Bueno pues no se por que usan la funcion sprite_assign() que lo que hace es crear una copia del sprite, si lo ?nico que quieren hacer es cambiar de sprite, para es lo ?nico que tienen que hacer es usar la variable sprite_index y asignar all? el nombre del sprite.

Ejemplo
[gml]sprite_index=spr_enemigo_izq[/gml]

y listo as? se cambia de sprite.

El tiene razon, cambia la sentencia que te dije yo por la que dijo el, perdon por haber dado una mala respuesta (N)

Muchas gracias, me funciona el c?digo, pero no consigo que me cambia a los gr?ficos de izquierda y derecha, el c?digo ahora es:

[gml]if obj_enemigo.x > obj_jugador.x
{
sprite_index=spr_enemigo_izq
}
else
{
sprite_index=spr_enemigo_der
}

if obj_enemigo.y > obj_jugador.y
{
sprite_index=spr_enemigo_up
}
else
{
sprite_index=spr_enemigo_dw
}[/gml]
.
MIS JUEGOS
_____________________________________________________________________________________________________________

1? Pang Espacial 1.0

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=2227

Eso lo pusiste en un step, verdad?

Y el problema es que no puedes hacer eso, o derecha o izquierda, nada mas. Porque por ejemplo, cuando tenga mas "x" y mas "y" que va a hacer? Crea conflicto.

Ponlo de derecha - izquierda o como mucho los sprites a 45? para poder las 4 sentencias (arriba y derecha, arriba e izquierda, abajo y derecha, abajo e izquierda)

Eso supuse, pero como lo hago entonces...
.
MIS JUEGOS
_____________________________________________________________________________________________________________

1? Pang Espacial 1.0

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=2227

[gml]
if obj_enemigo.x > obj_jugador.x and obj_enemigo.y > obj_jugador.y
{
sprite_index=spr_enemigo_izq_arriba
}
if obj_enemigo.x < obj_jugador.x and obj_enemigo.y > obj_jugador.y
{
sprite_index=spr_enemigo_der_arriba
}
if obj_enemigo.x > obj_jugador.x and obj_enemigo.y < obj_jugador.y
{
sprite_index=spr_enemigo_izq_abajo
}
if obj_enemigo.x < obj_jugador.x and obj_enemigo.y < obj_jugador.y
{
sprite_index=spr_enemigo_der_abajo
}
[/gml]