Hola buenas, este es uno de los principales problemas y esque la alarma se ejecuta cuando le sale de los huevos (es error mio lo se xD).

Bueno en step tengo este codigo.
STEP
if (mouse_x>view_xview[0]+32 and mouse_x<view_xview[0]+32+32 and mouse_y>view_yview[0]+448 and mouse_y<view_yview[0]+448+32) and mouse_check_button(mb_left) {
if global.oro >= 10 {
cursor_sprite = spr_escaleras
alarm[0] = room_speed * 1
}


Bien al pinchar se me pone el cursor con dicho sprite, pero la alarma no me corre.

Alarma 0

global.construir = 1
show_message('FFJASDfasdjks')


El show message es para mostrar si le tira xD ¿Algun consejillo?

#1 Julio 07, 2014, 12:20:12 AM Ultima modificación: Julio 07, 2014, 05:58:39 AM por 7sixerCF
el código de la alarma esta bien igual que cuando la seteas,  por descarte el error debería estar en el if prueba dejando una única condición obvia para probar si ese es el error

El show_message deberías meterlo dentro del primer if, para ver si la condición se cumple, si la condición nunca se cumple, la alarma nunca va a iniciar

PERO, como  la condición está en STEP, si se cumple recurrentemente, la alarma tampoco va a avanzar, porque en cada paso va a reajustarse al mismo valor de room_speed * 1.

Resumiendo: cuando se usan alarmas en STEP, la condición debe hacerse de tal manera que sólo sea cierta durante un solo paso, y a los siguientes ser falsa, de lo contrario la alarma nunca "correrá"

¿Tipo asi? xS

CREATE

alarma = 0


STEP

if (mouse_x>view_xview[0]+32 and mouse_x<view_xview[0]+32+32 and mouse_y>view_yview[0]+448 and mouse_y<view_yview[0]+448+32) and mouse_check_button(mb_left) {
if global.oro >= 10 {
cursor_sprite = spr_escaleras
alarma = 1
alarm[0] = room_speed * 1
}


ALARMA 0
global.construir = 1
show_message('FFJASDfasdjks')
alarma = 0

#4 Julio 07, 2014, 06:00:29 AM Ultima modificación: Julio 07, 2014, 06:03:37 AM por penumbra
Yo me refería a algo así:
if (mouse_x>view_xview[0]+32 and mouse_x<view_xview[0]+32+32 and mouse_y>view_yview[0]+448 and mouse_y<view_yview[0]+448+32) and mouse_check_button(mb_left) {
     show_message('FFJASDfasdjks')
//if global.oro >= 10 {
//cursor_sprite = spr_escaleras
//alarma = 1
//alarm[0] = room_speed * 1
}


sólo para ver si la condición se cumple, por eso puse las demás líneas como comentarios, si se muestra el mensaje, entonces la condición si funciona, pero aun quedaría hacer dentro de ese if la alarma se inicie sólo una vez , de lo contrario jamás llegaría a cero, y el evento de alarma nunca se ejecutaría.

Pues no..no me sale, nunca se me ha dado demasiado bien el tiempo :S