Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Herni en Julio 17, 2010, 06:38:04 PM

Título: [SOLUCIONADO] Problema con un Bounce y un IF que me ignora por completo
Publicado por: Herni en Julio 17, 2010, 06:38:04 PM
Buenas,

Estoy haciendo unas pruebas con colisiones, bounces (rebotes) con objetos y detectar salida de la room.

El caso es que las colisiones me las detecta bien, no es m?s que poner el evento "Colisi?n con".

El problema es que tengo la funci?n "move_contact_solid(direction, speed)" en el evento colisi?n para que siga en esa direcci?n y velocidad para que haga contacto con el s?lido, perocreo que no me la est? haciendo.


Y el segundo problema es que tengo en el "evento step" del cuadradito (mi personaje principal de 32x32) un IF que viene a ser:

if (y < (0 - sprite_height))  // Si la posici?n Y es menor de -32.
                             // Si se ha salido completamente de la room
{
 instance.destroy();
 instance_create(300,500,objCuadrado);
}



Como podr?is ver en el exe:

* Problema 1: No llega a tocar las paredes laterales.

* Problema 2: No siempre respeta el IF, a veces desaparece antes de llegar arriba del todo (aunque cuando falla siempre es casi arriba del todo).


Gracias a tod@s, un saludo,
- Herni
Título: Re: Problema con un Bounce y un IF que me ignora por completo
Publicado por: Wadk en Julio 17, 2010, 10:35:23 PM
Arregl? el ?cono del mensaje.
Título: Re: Problema con un Bounce y un IF que me ignora por completo
Publicado por: Herni en Julio 17, 2010, 11:01:39 PM
Cita de: Wadk en Julio 17, 2010, 10:35:23 PM
Arregl? el ?cono del mensaje.

Hecho...

A ver si con este detalle, recibo alguna sugerencia para arreglar el problemilla XD


Un saludo,
- Herni
Título: Re: Problema con un Bounce y un IF que me ignora por completo
Publicado por: Wadk en Julio 18, 2010, 04:16:42 AM
Yo no veo que no llegue a tocar las paredes, para mi lo hace bien.
El problema con el if es que cambia el sprite_height al modificarse el aspecto del sprite usando variables (como image_xscale), supongo. Intent? con sprite_get_height(sprite_index) que verifica la imagen del sprite tal como fue colocada en memoria por primera vez y no toma en cuenta las propiedades del objeto.
Aunque tambi?n podr?as poner un instance_destroy en el evento Outside Room... ser?a m?s f?cil.
Título: Re: Problema con un Bounce y un IF que me ignora por completo
Publicado por: Herni en Julio 18, 2010, 05:29:58 AM
Cita de: Wadk en Julio 18, 2010, 04:16:42 AM
El problema con el if es que cambia el sprite_height al modificarse el aspecto del sprite usando variables (como image_xscale), supongo. Intent? con sprite_get_height(sprite_index) que verifica la imagen del sprite tal como fue colocada en memoria por primera vez y no toma en cuenta las propiedades del objeto.
Aunque tambi?n podr?as poner un instance_destroy en el evento Outside Room... ser?a m?s f?cil.

Buenas de nuevo Wadk,

Ya hab?a probado el Outside Room, pero por tener el eje del Sprite en el (16)(16), desaparec?a cuando estaba s?lo la mitad fuera.

He trasteado y he visto que s?lo fallaba cuando el cuadrado iba a salir de la room en direcci?n entre 90? y 180? (vamos... yendo a la izquierda)

Mi funci?n de controlar la salida de la pantalla era:
if (y < (0 - sprite_height))  // Si la posici?n Y es menor de -32, se ha salido completamente de la room

El caso es que yo rotaba el cuadro y lo reflejaba con la variable "image_yscale = -1" que sorprend?ntemente hac?a que la altura del sprite pasase a ser -32 pixeles XD

Entonces lo que he hecho ha sido rehacer el check del if para que tome el valor absoluto de la altura:
if (y < (0 - abs(sprite_height)))  // Si la posici?n Y es menor de -32, se ha salido completamente de la room


Cita de: Wadk en Julio 18, 2010, 04:16:42 AM
Yo no veo que no llegue a tocar las paredes, para mi lo hace bien.

Entonces el problema del bounce ser? entonces cosa de mis ojos, que no refrescan tan r?pido como el monitor y no veo la colisi?n forzada que hago con el "move_contact_solid()" XD



Gracias por las alternativas, un saludo,
- Herni