Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ReyHuno en Agosto 01, 2011, 11:58:52 AM

Título: Duda enemigos que te siguen
Publicado por: ReyHuno en Agosto 01, 2011, 11:58:52 AM
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...
Título: Re: Duda enemigos que te siguen
Publicado por: 3dgeminis en Agosto 01, 2011, 04:05:09 PM
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.
Título: Re: Duda enemigos que te siguen
Publicado por: ReyHuno en Agosto 02, 2011, 11:40:28 AM
Muchas gracias, por el momento no tengo internet en el ordena asi que ya te dire si me sirve cuando me lo pueda decargar...
Título: Re: Duda enemigos que te siguen
Publicado por: ReyHuno en Agosto 03, 2011, 10:57:18 AM
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
Título: Re: Duda enemigos que te siguen
Publicado por: MaanuRP en Agosto 03, 2011, 06:29:08 PM
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!
Título: Re: Duda enemigos que te siguen
Publicado por: ReyHuno en Agosto 03, 2011, 07:06:43 PM
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...
Título: Re: Duda enemigos que te siguen
Publicado por: MaanuRP en Agosto 03, 2011, 08:18:08 PM
Puedes hacerlo con la siguiente funcion:

[gml]
//Sentencia:
sprite_assign(ind,source)
//Ejemplo
sprite_assign(0,sprite1)
[/gml]
Título: Re: Duda enemigos que te siguen
Publicado por: ReyHuno en Agosto 03, 2011, 09:02:07 PM
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]
Título: Re: Duda enemigos que te siguen
Publicado por: MaanuRP en Agosto 03, 2011, 10:54:22 PM
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
Título: Re: Duda enemigos que te siguen
Publicado por: 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.
Título: Re: Duda enemigos que te siguen
Publicado por: MaanuRP en Agosto 03, 2011, 11:36:09 PM
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)
Título: Re: Duda enemigos que te siguen
Publicado por: ReyHuno en Agosto 03, 2011, 11:51:54 PM
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]
Título: Re: Duda enemigos que te siguen
Publicado por: MaanuRP en Agosto 04, 2011, 12:33:43 AM
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)
Título: Re: Duda enemigos que te siguen
Publicado por: ReyHuno en Agosto 04, 2011, 03:43:39 PM
Eso supuse, pero como lo hago entonces...
Título: Re: Duda enemigos que te siguen
Publicado por: MaanuRP en Agosto 04, 2011, 05:50:27 PM
[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]
Título: Re: Duda enemigos que te siguen
Publicado por: Gabriel Moreno en Agosto 04, 2011, 06:08:27 PM
Si TuJuego Es Vista Cenital (o como se diga  :-[)Osea Se ve Desde Arriba xd Prueva Q Solo 1 Sprite Gire en direcci?n detu jugador ;)
Título: Re: Duda enemigos que te siguen
Publicado por: ReyHuno en Agosto 05, 2011, 10:47:54 AM
A vale, lo que hace ese codigo es que se cambie en diagonal...

Uf pues no tengo en diagonal...

Bueno muchas gracias, eso sera perfecto, gracias por el tiempo dedicado.

Ya os ense?are el juego cuando este acabado o quede poco...