ComunidadID
Bienvenido a ComunidadID

¿Quieres promocionar tu videojuego?

Regístrate y publicalo 
en nuestros foros!


No estás conectado. Conéctate o registrate

Solucionar Bugs en mi juego =(

    

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1CF2.5DEV Solucionar Bugs en mi juego =( el 23/10/2016, 12:46

LagunaLife


Nivel: 4
Nivel: 4
¡Hola gente!, estoy haciendo mi primer juego/prueba, que es nada mas y nada menos que un rompeladrillos, mas conocido como Breakout.

Ya tengo configurado el movimiento, generacion aleatoria de bloques, las colisiones, particulas...

El caso es que hay un par de bugs que no se como solucionarlo. Espero que no os asusteis al ver el codigo del juego, ya que seguro que no es el mas correcto ni adecuado, si es asi me gustaria saber todos los fallos que encontrais para mejorarlo ^^.

Los Bugs son:

1) Me ha pasado que cuando cojo un segundo objeto pegajoso, un item que cae en algunos bloques de color verde, la bola se queda parada justo cuando colisiona con la plataforma del jugador.

2) Cuando estas en el modo "jugador pegajoso" (plataforma de color verde), cuando te situas en una esquina, la bola no se pega al jugador, bota como si estuviera en modo normal por asi decirlo.

3) Otro bug que acabo de encontrar, es que cuando estas tambien en la esquina en modo pegajoso, no me deja lanzar la pelota al hacer click con el raton =(

El juego es: https://mega.nz/#!4URVhaoK!S7rN88VYicfzik4gve7ffvadOnoiH63VsZyWFUeiHPc


Otra duda que tengo, como podeis proteger vuestros juegos?!, me refiero, cualquier persona que vea mi juego por aqui podria cogerlo y publicarlo. No creo que pase por que es juego mierdoso XD, pero para  mas adelante digo... Yo lo que hice es poner un grupo protegido por contraseña, donde se genera un texto con mi Nick.


Saludos!

http://sopadetoad.com

2CF2.5DEV Re: Solucionar Bugs en mi juego =( el 23/10/2016, 13:26

OceanoPolar


Nivel: 4
Nivel: 4
Buenas.

No me salieron los bug xd.  Bueno algo que yo suelo hacer, si el juego tiene cosas como cambios de movimiento,aliados etc, los pongo en un grupo de eventos tal como tu lo hiciste pero estos grupos se activan y se desactivan con lo cual eliminamos posibles errores (ejemplo. Un evento dice :cuando golpea este objeto  rebota y a la vez en otro evento le decimos cuando golpea este objeto no rebota) Estando en grupos de eventos separados y poniéndolos en activado y desactivado evitamos esos posibles errores. 

Otra cosa el evento "start of frame" no los pongas dentro de los grupos de evento. Si necesitas que algo pasa cuando se active ese evento la instruccion es "on group activation". Se encuentra en "special conditions"-"group of events"-"on group activation".

Espero te sirva de ayuda.

3CF2.5DEV Re: Solucionar Bugs en mi juego =( el 23/10/2016, 13:38

LagunaLife


Nivel: 4
Nivel: 4
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Buenas.

No me salieron los bug xd.  Bueno algo que yo suelo hacer, si el juego tiene cosas como cambios de movimiento,aliados etc, los pongo en un grupo de eventos tal como tu lo hiciste pero estos grupos se activan y se desactivan con lo cual eliminamos posibles errores (ejemplo. Un evento dice :cuando golpea este objeto  rebota y a la vez en otro evento le decimos cuando golpea este objeto no rebota) Estando en grupos de eventos separados y poniéndolos en activado y desactivado evitamos esos posibles errores. 

Otra cosa el evento "start of frame" no los pongas dentro de los grupos de evento. Si necesitas que algo pasa cuando se active ese evento la instruccion es "on group activation". Se encuentra en "special conditions"-"group of events"-"on group activation".

Espero te sirva de ayuda.

He visto que esta la condicion "Check for activacion" dentro de "Group of events", y comprueba si esta activado un grupo, pero... ¿como activo o desactivo los grupos?. En plan, si el jugador colisiona con "item objeto pegajoso" que se active ese grupo, y cuando termine el contador, que se desactive.

Decir tambien que el Bug 1 y 3 lo he solucionado añadiendo la linea "Cuando el jugador este en animacion Pegajoso" tal y como muestro en la imagen:



Eso si, el 2 aun no se como arreglarlo =(. [Tienes que estar registrado y conectado para ver este vínculo], he cambiado los "Start Frame" por "on group activation" funciona genial gracias.

Edito: Me ha vuelto a pasar =(, cuando estoy en modo Pegajoso, y vuelvo a coger otro item Pegajoso, la bola al tocar la plataforma del jugador, se queda congelada. ¿Alguna idea?

http://sopadetoad.com

4CF2.5DEV Re: Solucionar Bugs en mi juego =( el 23/10/2016, 14:00

OceanoPolar


Nivel: 4
Nivel: 4
Cuando se cumple un evento (ejemplo: este contador llegue a 0 : vuelves a "special conditions"-"group evente" -"activa o desactiva") . Veras una lista de todos los grupos de eventos que hayas creado.

Otra cosa, puedes anidar grupos de eventos dentro de otros grupos de evento.

Consejo: pensar bien cuando se activa y cuando se desactiva. La opción "on group activation" solo se ejecuta si el evento esta inactivo. Si este esta activo y lo volvemos a activar este evento no tendría efecto alguno ya que el evento ya estaba activado anteriormente.

5CF2.5DEV Re: Solucionar Bugs en mi juego =( el 23/10/2016, 16:51

Zonacas


ADMINISTRADOR
ADMINISTRADOR
Vamos a ver [Tienes que estar registrado y conectado para ver este vínculo]

primero antes que nada decir que estoy viendo ahí unos always, evento 8 y 9 que no se que hacen realmente ahí palo feliz

Tienes un counter ModoJug que parece controla el tema pegajoso, en el que tienes un poco de lío

Evento 6  Le dices que cuando el ítem pegajoso colisiona con la "nave" ModoJug=1 (nave en modo pegajoso)

Evento 8 Estas diciendo que si la pelota colisiona con el group shapes (detectores de la nave) y está en modo pegajoso (ModoJug=1) entonces ModoJug = 2 y velocidad 0 de la pelota

Evento 9 Modojug = 2 la posición x de la pelota sigue a la posición X del ratón , que es el de la "nave"

Evento 10 si se pulsa el botón izquierdo del ratón y si esta en Modojug=2 se libera la pelota (velocidad 50)

que es lo que pasa?

que si estas con la pelota pegada ModoJug=2 y coges otro item pasas a ModoJug =1 por lo que el evento 9 y 10 ya no funcionan , para que funcionen necesitan estar en ModoJug=2

Solución?


Evento 9 quitale la condición de estar en ModoJug =2 y pon la condición de que la pelota este en velocidad 0 para que siga la posición X del ratón

Evento 10 quitale la condición de estar en ModoJug =2 y pon una comprobación de si la pelota esta en velocidad 0

No necesitas el ModoJug=2 para indicar que está parada la pelota, comprobando su velocidad ya sabes si está parada

el problema es que estas usando una variable (ModoJug) para controlar dos cosas que pueden pasar al mismo tiempo, tener la pelota parada y pillar el item

Quita esos Always también (eventos 8 y 9)  palo

Con eso creo deberia funcionar


_________________
http://oskystudios.wix.com/osky-studios

6CF2.5DEV Re: Solucionar Bugs en mi juego =( el 24/10/2016, 01:21

LagunaLife


Nivel: 4
Nivel: 4
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Vamos a ver [Tienes que estar registrado y conectado para ver este vínculo]

primero antes que nada decir que estoy viendo ahí unos always, evento 8 y 9 que no se que hacen realmente ahí palo feliz

Tienes un counter ModoJug que parece controla el tema pegajoso, en el que tienes un poco de lío

Evento 6  Le dices que cuando el ítem pegajoso colisiona con la "nave" ModoJug=1 (nave en modo pegajoso)

Evento 8 Estas diciendo que si la pelota colisiona con el group shapes (detectores de la nave) y está en modo pegajoso (ModoJug=1) entonces ModoJug = 2 y velocidad 0 de la pelota

Evento 9 Modojug = 2 la posición x de la pelota sigue a la posición X del ratón , que es el de la "nave"

Evento 10 si se pulsa el botón izquierdo del ratón y si esta en Modojug=2 se libera la pelota (velocidad 50)

que es lo que pasa?

que si estas con la pelota pegada ModoJug=2 y coges otro item pasas a ModoJug =1 por lo que el evento 9 y 10 ya no funcionan , para que funcionen necesitan estar en ModoJug=2

Solución?


Evento 9 quitale la condición de estar en ModoJug =2 y pon la condición de que la pelota este en velocidad 0 para que siga la posición X del ratón

Evento 10 quitale la condición de estar en ModoJug =2 y pon una comprobación de si la pelota esta en velocidad 0

No necesitas el ModoJug=2 para indicar que está parada la pelota, comprobando su velocidad ya sabes si está parada

el problema es que estas usando una variable (ModoJug) para controlar dos cosas que pueden pasar al mismo tiempo, tener la pelota parada y pillar el item

Quita esos Always también (eventos 8 y 9)  palo

Con eso creo deberia funcionar

¡Funciona genial! eres un genio Very Happy muchas gracias! y perdona por mi ignorancia con todo esto, tenia un lio que vamos...

Ahora lo unico que ocurre es que a veces, no se por que, si estoy en modo pegajoso y hago click con el raton, la bola no sale disparada y tengo que darle otro click... no he visto nada raro en el código, pero bueno =S ¿se te ocurre que puede ser?.

Muchisimas gracias de verdad!

http://sopadetoad.com

7CF2.5DEV Re: Solucionar Bugs en mi juego =( el 24/10/2016, 10:39

Zonacas


ADMINISTRADOR
ADMINISTRADOR
Pues... Seguramente hay conflicto entre eventos, hay algún evento que impide que salga liberada la bola, la vuelve a capturar

mira el orden de los eventos y pon el de click de ratón más abajo en la lista para que prevalezca sobre los anteriores

Asegurate de que cuando haces click la pelota no está tocando la nave

La forma de como paras la pelota, lo de poner velocidad 0, no es la forma más adecuada

creo que es mejor parar el movimiento (Stop) una vez la pelota haya rebotado, y volverlo a poner en marcha cuando haces click




EDITO

Creo que va ser que la pelota toca con la nave, por eso la vuelve a capturar

pon esto



Cuando la pelota colisione haz un bounce , pon la velocidad a 0 y reposiciona la coordenada Y de la pelota por encima de la nave para que no la toque


_________________
http://oskystudios.wix.com/osky-studios

8CF2.5DEV Re: Solucionar Bugs en mi juego =( el 24/10/2016, 19:44

LagunaLife


Nivel: 4
Nivel: 4
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Pues... Seguramente hay conflicto entre eventos, hay algún evento que impide que salga liberada la bola, la vuelve a capturar

mira el orden de los eventos y pon el de click de ratón más abajo en la lista para que prevalezca sobre los anteriores

Asegurate de que cuando haces click la pelota no está tocando la nave

La forma de como paras la pelota, lo de poner velocidad 0, no es la forma más adecuada

creo que es mejor parar el movimiento (Stop) una vez la pelota haya rebotado, y volverlo a poner en marcha cuando haces click




EDITO

Creo que va ser que la pelota toca con la nave, por eso la vuelve a capturar

pon esto



Cuando la pelota colisione haz un bounce , pon la velocidad a 0 y reposiciona la  coordenada Y de la pelota por encima de la nave para que no la toque

Hola compañero!, he puesto que la pelota haga "Stop" cuando colisione en modo pegajoso, pero no funciona =(, si pongo Speed 0, si. Es algo que ya lo probe en su momento, por que sobre todo cuando haga la funcion de que la pelota vaya mas rapido, no puedo poner que la pelota luego se dispare a velocidad 50, por que no sabre la velocidad que lleva en ese momento.

Y otra pregunta tonta jajaja, veras... si cambio a otro frame, los contadores y las variables vuelven a 0 verdad?, no se guardan a menos que lo indique en un archivo ini ¿no?.

Saludos! Guiño

http://sopadetoad.com

9CF2.5DEV Re: Solucionar Bugs en mi juego =( el 25/10/2016, 09:31

Zonacas


ADMINISTRADOR
ADMINISTRADOR
Para utilizar el Stop y que funcione bien  supongo tendrias que cambiar varias cosas

Cuando haces Stop la velocidad se conserva, cuando haces Start sigue con la misma velocidad a no ser que la cambies




Si cambias de Frame las variables del objeto no se mantienen

Sabes por qué?

Porque son objetos locales, su ámbito es el frame , si cambias el gráfico en un frame no alteras al del otro frame aunque tenga el mismo nombre, lo mismo para las variables.

Ahora bien, puedes hacer que los objetos sean globales, marcando la casilla Global Object en sus propiedades



Así sus variables serán globales y se mantendrán entre frames,y si cambias el gráfico en un frame tambien cambiara en el otro frame  Smile

Tienes que tener en cuenta que si haces un objeto global, las variables ahora se conservarán siempre entre frames
por ejemplo el Score , si juegas una partida, la terminas y vuelves a jugar otra, seguirás con el score de la última partida, debes acordarte de resetear las variables cuando empiezas una partida o según te interese.


_________________
http://oskystudios.wix.com/osky-studios

10CF2.5DEV Re: Solucionar Bugs en mi juego =( el 25/10/2016, 14:15

LagunaLife


Nivel: 4
Nivel: 4
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Para utilizar el Stop y que funcione bien  supongo tendrias que cambiar varias cosas

Cuando haces Stop la velocidad se conserva, cuando haces Start sigue con la misma velocidad a no ser que la cambies




Si cambias de Frame las variables del objeto no se mantienen

Sabes por qué?

Porque son objetos locales, su ámbito es el frame , si cambias el gráfico en un frame no alteras al del otro frame aunque tenga el mismo nombre, lo mismo para las variables.

Ahora bien, puedes hacer que los objetos sean globales, marcando la casilla Global Object en sus propiedades



Así sus variables serán globales y se mantendrán entre frames,y si cambias el gráfico en un frame tambien cambiara en el otro frame  Smile

Tienes que tener en cuenta que si haces un objeto global, las variables ahora se conservarán siempre entre frames
por ejemplo el Score , si juegas una partida, la terminas y vuelves a jugar otra, seguirás con el score de la última partida, debes acordarte de resetear las variables cuando empiezas una partida o según te interese.

Genial! lo de Global Object me ha quedado muy claro, lo tendre en cuenta cuando realice mas frame =).

Ahora tengo otro problema jajaja no salgo de uno que me meto en otro, y no se donde esta el fallo. Estoy re-escribiendo el codigo para la "Pelota pegajosa" del juego, ya sabeis que cuando toque la bola al jugador esta se quede pegada y siga al jugador.
El caso es que todo esta perfecto, pero a la hora de terminar la animacion del jugador "Pegajosa" quiero que la bola salga disparada y no sale.

Se supone que en la linea 36 le indico que al terminar la animacion "Pegajosa" pues salga disparada la bola, pero no, se queda en el punto y yata.

Os dejo el juego actualizado: https://mega.nz/#!sMIgUCZK!-B1Pd2LDtUxejD0JxQzR8LFWRqJIuTe0qDrM2MsmVoA

http://sopadetoad.com

11CF2.5DEV Re: Solucionar Bugs en mi juego =( el 25/10/2016, 14:30

OceanoPolar


Nivel: 4
Nivel: 4
Claro si no tienes animación xd. La animación es que se ejecuten todos los frames por ejemplo de walk.

ejemplo: Animación walk = a 70 frames       animación walk over         es que se hayan ejecutado los 70 frames 

asi que tendrás que cambiar esa orden.

12CF2.5DEV Re: Solucionar Bugs en mi juego =( el 26/10/2016, 09:51

Zonacas


ADMINISTRADOR
ADMINISTRADOR
El problema es que está mal planteado el modo pegajoso

Tienes la animación pegajoso en un loop, así que nunca se va a cumplir que la animación se termine

Cuando se acaba el tiempo del counter pegajoso restauras la animación, restaurar no es terminar la animación pegajoso

Solucion?

Podrías darle la vuelta al evento 36

en vez de decirle que si ha terminado

decirle que si la animación pegajoso esta playing y el contador pegajoso ha llegado a cero





_________________
http://oskystudios.wix.com/osky-studios

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

    

Permisos de este foro:
No puedes responder a temas en este foro.