Abril 08, 2012, 05:05:11 PM Ultima modificación: Abril 10, 2012, 02:02:17 PM por kaliman777
Hola:

Tengo problemas con este código, no me está funcionando. Quiero que me elaboren, por favor un trozo de código que haga esto:

"si la subimagen del objeto AA es igual a la subimagen del objeto BB (LA NÚMERO 12 por ejemplo), que se dibuje obj_nube en 50,50 y global.puntos +=10"

Si no le entienden, lo que quiero es saber exactamente cuál es el mejor código para comparar esta condición.
Dos objetos con la misma cantidad de subimágenes. Quiero trabajar con la condición de qué pasa si cada uno
tiene la subimagen número 12, por ejemplo.

Gracias
La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.

if aa.image_index=bb.image_index{x=50;y=50;global.puntos+=10}
Yo no fu?!

No entendí el código de Exe_mas, por eso lo modifico un poquito :D
if aa.image_index=bb.image_index
       {
       draw_sprite(spr_nube,-1,50,50);
       global.puntos+=10
       }
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


Es lo mismo que el tuyo, pero no está pidiendo dibujar un sprite, esta pidiendo mover ese objeto. Te lo dejo más lindo, yo soy muy desfachatado en código, lo hago para agilizar la programación (no lo hagan en sus casas).

if aa.image_index=bb.image_index
{
ob_nube.x=50;
ob_nube.y=50;
global.puntos+=10
}
Yo no fu?!

Cita de: Exe_mas en Abril 11, 2012, 01:17:07 AM
Es lo mismo que el tuyo, pero no está pidiendo dibujar un sprite, esta pidiendo mover ese objeto. Te lo dejo más lindo, yo soy muy desfachatado en código, lo hago para agilizar la programación (no lo hagan en sus casas).

if aa.image_index=bb.image_index
{
ob_nube.x=50;
ob_nube.y=50;
global.puntos+=10
}

Gracias a ambos:

Me sale algo que no manejo bien. Este código es verificado con una alarma cada vez que que el objeto bb es creado. Por desgracia, me sigue sumando el score aunque no se dé la condición antes descrita.

Es decir, asume que siempre aa.image_index=bb.image_index.

¿Qué estará pasando?
La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.

En teoría el código debería funcionar a la perfección.
Verifica que no tienes algún otro objeto que esté sumando puntos. Que está correctamente escrito el código, y que la acción de sumar score esté dentro de las llaves. O que los sprites no están en movimiento.

Las alarmas verifican en UN solo step. Seguro que es lo que quieres? Yo lo dejería en Step, y si no quieres sumar 30 veces por segundo, le pones una variable que se active y listo.
Ej:
En create:
activado=false

En step:
if aa.image_index=bb.image_index
{
       if activado=false
       {
           ob_nube.x=50;
           ob_nube.y=50;
           global.puntos+=10;
           activado=true;
           alarm[0]=30//para que en un segundo puedas volver a sumar
         }
}

Y en alarm[0]:
activado=false
Yo no fu?!

Cita de: Exe_mas en Abril 11, 2012, 03:14:00 PM
Las alarmas verifican en UN solo step. Seguro que es lo que quieres? Yo lo dejería en Step, y si no quieres sumar 30 veces por segundo, le pones una variable que se active y listo.
Ej:
En create:
activado=false

En step:
if aa.image_index=bb.image_index
{
       if activado=false
       {
           ob_nube.x=50;
           ob_nube.y=50;
           global.puntos+=10;
           activado=true;
           alarm[0]=30//para que en un segundo puedas volver a sumar
         }
}

Y en alarm[0]:
activado=false

Gracias mil. Exe_Mas. Me funciona con este código!!
La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.