Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Roland2 en Enero 03, 2014, 07:10:46 PM

Título: Combate con espada + Máscaras y colisiones
Publicado por: Roland2 en Enero 03, 2014, 07:10:46 PM
Hola a todos,

antes de pedir ayuda he buscado hilos similares en el foro y si, hay muchos, pero sigo sin aclararme. Básicamente el problema es que muchas de las soluciones dadas son con GML o directamente no las entiendo.

El problema es sencillo: quiero que el personaje ataque con la espada a un enemigo y este muera. Ya ves.

Hasta ahora he creado todo lo relacionado con el personaje (anda, colisiona, salta, sube escaleras) y con el enemigo (hace ronda y si colisona con el personaje, se reinicia la room). También he creado un sprite de prueba del personaje atacando con la espada.

Según lo visto en los post que he encontrado aquí, entiendo la teoría: hay que crear dos sprites distintos, uno para el personaje y otro para la espada espada. Luego se aplican eventos de colisión a la espada, etc. El problema es que no sé cómo se hace todo eso (crear dos sprites unidos, espada/personaje).

Haciendo pruebas, he asignado Press <W> al sprite del personaje atacando (que supongo que no me vale, ya que es un solo spite para todo) y Release <W> par que deje de atacar. Pero si dejo presionado W ataca sin parar hasta que suelto. ¿Para hacer un golpe tengo que poner la letra W en lugar de release? Es decir, ¿keyboard en lugar de Key Press?

Si alguien puede explicarme esto le estaré muy agradecido. Y si hay por ahí algún tutorial en video, mejor que mejor.

Gracias


(Utilizo Game Maker Studio)
Título: Re:Combate con espada + Máscaras y colisiones
Publicado por: 3dgeminis en Enero 05, 2014, 05:19:29 AM
Yo lo haria con 2 objetos separados y no 2 sprites separados. En el momento de atacar se crearia el objeto que seria la espada que colisionaria con el enemigo (el objeto seria invisible), y al terminar la animacion de atacar se destruye. Como mascara se usaria la parte de la espada del sprite que tambien puede ser animada.
Título: Re:Combate con espada + Máscaras y colisiones
Publicado por: Roland2 en Enero 05, 2014, 07:52:52 PM
Si lo he entendido bien, sería igual que para hacer flechas o balas. Pero sin darle movimiento.
Algo así:
Start Block
Test variable (sprite index/protagonista izquierda)
Create instance_espada izquierda.

Lo mismo para la derecha.

¿Pero cómo hago para que el personaje cambie la animación?
He conseguido que lance flechas, pero he podido meterle la animación del arco, así que las lanza por los ojos... ¿dónde pongo el change sprite y que solo aparezca al pular la tecla?


¡Muchas gracias por responder!
Título: Re:Combate con espada + Máscaras y colisiones
Publicado por: penumbra en Enero 05, 2014, 09:54:14 PM
Hay que ser previsor. Es mejor empezar creando un sistema de variables que te indiquen el estado del personaje y que te permitan tomar decisiones basado en ese estado. por ejemplo. una variable "avanzar" que sea false cuando se esté atacando, o saltando, o haciendo otra cosa, menos caminar

if (avanzar == true)
{
// código para avanzar
}

Cuando se deba atacar, cambias el estado de la variable avanzar = false;
Para cambiar el sprite, usas sprite_index = sprite_de_ataque

Cita de: Roland2 en Enero 05, 2014, 07:52:52 PM
Create instance_espada izquierda.

No necesitas crear un objeto para izquierda y otro para derecha. Sólamente creas un objeto, y cuando quieres voltearlo o "espejear", usas image_xscale = -1.



Título: Re:Combate con espada + Máscaras y colisiones
Publicado por: Roland2 en Enero 06, 2014, 11:40:24 AM
Muchas gracias, pero me temo que no lo entendí bien. Ando muy liado con el tema de las variables, y creo que en ese aspecto lo estoy haciendo todo mal. Seguro que se puede resumir mucho movimiento y mucho evento a base de variables, pero no se hacerlo.

Por otra parte, yo CERO de programación. Lo hago todo en D&D. así que en muchas explicaciones me pierdo.


Ayer me puse a intentar hacer el golpe de ataque mediante un objeto invisible y todo bien. Conseguí que el enemigo muriese al chocar con el objeto. Pero sigo sin saber dónde colocar las variables o lo que sea, para que el personaje cambie de animación.
Intentaré traducir lo que has dicho a D&D y veré si puedo hacerlo.

Gracias.
Título: Re:Combate con espada + Máscaras y colisiones
Publicado por: Roland2 en Enero 06, 2014, 08:20:30 PM
Siento dar la brasa con esto, pero me salen más y más problemas.

Sigo sin saber hacer que el personaje cambie la animación al disparar o atacar con la espada. He intentado ponerle change sprite, hacer otro grupo de variables... y nada.
El personaje debería quedarse quito al disparar o atacar, no quiero que se mueva. Pero lo hace. Claro que esto lo podría evitar haciendo que al cambiar a la animación correspondiente, esta fuera speed 0 ¿no?
También me gustaría meterle un sonido para la acción y otro para la colisión, pero tampoco se dónde ponerlo.

¿No hay algún buen tutorial en video sobre esto?¿o algún engine de ejemplo? No encuentro ninguno, o al menos, ninguno claro y en D&D.
Título: Re:Combate con espada + Máscaras y colisiones
Publicado por: CrashKen en Enero 07, 2014, 02:58:52 PM
Te recomiendo aprender algo de glm. Al principio parece complicado pero despues te hace todo mucho mas facil. Porv ejemplo en mi primer juego de pelea  hice todo sin gml y termine creando mas de 10 objetos por personaje y para hacer algo nuevo tenia que modificar todos xD.