Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: jronis en Febrero 10, 2014, 01:56:58 PM

Título: Juego tipo Arkanoid
Publicado por: jronis en Febrero 10, 2014, 01:56:58 PM
Hola amigos, ya he visto en el foro que hay algunas preguntas que hacen alusión a este tipo de juego. De todos modos no he encontrado en ninguna de ellas la solución que busco y que paso a explicar a continuación.

Estoy desarrollando un juego tipo "Arkanoid" con el fin de mejorar mi técnica y aprender nuevos conceptos acerca de GAME MAKER. Este proyecto en concreto lo estoy programando en GMS.

Para este proyecto cuento con 4 objetos: una bola, una barra para el jugador, un muro para que la bola no se salga de la habitación y unos bloques que hay que destruir.

Si coloco un evento de colisión y la acción move_bounce_solid(); al objeto bola con los otros 3 elementos, esta rebota, pero en ocasiones, no se comporta de forma correcta. Es decir, hay veces que está rebotando en horizontal y se queda ahi todo el tiempo sin posibilidad a que el jugador "barra" pueda continuar jugando.

Por otro lado, y para darle más jugabilidad al mismo,el objeto bola, tendría que salir rebotado en distintas direcciones, dependiendo del lugar donde golpee en la "barra" o jugador.

He visto este código en el foro, pero no sé dónde hay que colocarlo, ni tampoco si sirve para solucionar todos los problemas anteriormente descritos.

{
  if (other.x < x)
    { other.direction = 110 + 80*(x-other.x)/sprite_width;}
  else
    { other.direction = 70 + 80*(x-other.x)/sprite_width;}
  if (other.y > y) other.direction := 360-other.direction;
}

Espero haberme explicado con claridad.

Gracias de antemano a todos.

Saludos
JR-ONIS

Título: Re:Juego tipo Arkanoid
Publicado por: Iros en Febrero 10, 2014, 04:42:48 PM
El código ese ponelo en step de la bola.

En colisión con los demás objetos usá este código.

Al rebotar con las paredes:

[gml]
hspeed = -hspeed;
[/gml]

Al rebotar en el techo o bloques:

[gml]
vspeed = -vspeed;
[/gml]

Con eso ya tendrías todo solucionado.
Título: Re:Juego tipo Arkanoid
Publicado por: elviskelley en Febrero 10, 2014, 05:34:42 PM
el codigo de rebote horizontal es asi; hspeed*=-1; y del rebote vertical vspeed*=-1;
Pero mejor te dejo un Arkanoid hecho por mi y asi aprendes....
Nota: Esta en GM8.1 pero hasta donde se el  :GMS: abre los archivos del GM.8.1, ai que abrelo y verificalo.
Título: Re:Juego tipo Arkanoid
Publicado por: Iros en Febrero 10, 2014, 07:05:47 PM
En realidad elviskelley, como lo puse es exactamente lo mismo y más simple de entender, iba a poner el que pusiste pero se podía generar confusiones de porqué *=-1 (que al fin y al cabo se le cambia de signo nada más xD)