Marzo 01, 2015, 04:23:05 PM Ultima modificación: Marzo 01, 2015, 04:30:26 PM por ferxu
Estoy haciendo un juego pero tengo algunas dudas. El juego consiste en dar puñetazos a los cuadrados del mismo color de los cuadrados. Al darle botón derecho o izquierdo hace una animacion de dar un puñetazo. Si el puño verde toca el cuadrado verde, se destruye, si toca el rojo pierde. Como podria hacer eso? Os adjunto foto para haceros una idea

https://imageshack.com/i/idvfrsp9p

#1 Marzo 01, 2015, 04:35:13 PM Ultima modificación: Marzo 01, 2015, 04:45:34 PM por penumbra
Habría cuatro objetos:

obj_punoVerde
obj_punoRojo
obj_cuadroVerde
obj_cuadroRojo

a cada objeto, en su evento create les asignas una variable: (sólo una de las dos líneas siguientes, NO LAS DOS A LA VEZ)
[gml]color = "verde"     //si el objeto es verde
color = "rojo"       //si el objeto es rojo[/gml]

Creas un objeto obParentCuadros(vacío, es decir, sin eventos) , y lo haces padre de los dos objetos obj_cuadro


Agregas un evento de colisión en el obj_punoVerde contra el objeto obParentCuadros
[gml]if (color == other.color)
{
      //EL color coincide, agregar acciones pertinentes (sumar al score, etc)
     with(other) { instance_destroy() }    //Destruír el cuadro verde
}
else
{
     game_restart()     //El color no coincide, se termina el juego
}
[/gml]

Sería lo mismo para el puño rojo. ¿Qué falta? Hacer que al presionar un botón se haga la animación del puño avanzando hacia el cuadro.

La verdad es que acabo de empezar y no tengo mucha idea. Las variables  donde las creo? Y lo segundo, el objecto CuadradoParent que tendria que hacer?

#3 Marzo 01, 2015, 04:54:55 PM Ultima modificación: Marzo 01, 2015, 05:00:03 PM por penumbra
Las variables se crean en el evento CREATE de los objetos. el objecto CuadradoParent no hace nada por si mismo, pero sirve para agrupar a los dos objetos cuadros y hacer más fácil de manejar las colisiones.

Si no agrupas los objetos cuadros, (ni los objetos puño), tendrías que agregar 4 eventos de colisión

Si agrupas los cuadros (y no los objetos puño, que es como está el cósigo que puse), se agregan dos eventos de colisión, uno por cada puño

Si agrupas los cuadros y los puños (esto no lo hice, pero se puede hacer, un objeto para los puños y otro para los cuadros), sólo sería necesario un evento de colisión.

Si vas empezando, este juego quizás sea demasiado. Yo te recomendaría que antes hicieras los tutoriales básicos que aparecen en la pestaña de Tutoriales al arrancar el GMS, y después de completarlos, volvieras a este juego.