Código com object_event_add

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Código com object_event_add

Mensagem por y_Tiago em Dom 06 Nov 2011, 19:07

O problema é o seguinte, se eu fizer o objeto por script, não funciona, pelo menos não aqui, mas se eu montar pelo editor de objetos do GM, funciona certinho.
Se é que há algum, qual é o erro?
PS: é um código para checkboxes, se eu clicar e estiver 'checado' ele descheca, se não estiver 'checado' ele checa. E tem os eventos de mouse_over e not over, e se estiver desativado ele deixa no sprite de desativado.

Código:
cb=object_add()

object_set_sprite(cb, spr_cb)
object_set_visible(cb, true)
object_set_solid(cb, true)

object_event_add(cb, ev_create, 0, "
global._cb+=1;
disabled=false;
checked=false;
changed=false;
font=global.font;
color=global.color;
text='';
")

object_event_add(cb, ev_destroy, 0, "global._cb-=1")

object_event_add(cb, ev_alarm, 0, "changed=false")

object_event_add(cb, ev_draw, 0, "
image_speed=0;
draw_sprite(sprite_index,image_index,x,y);
draw_text(x+18,y-3,text)
")

object_event_add(cb, ev_left_press, 0, "
if disabled then exit

switch (checked){
case true:
image_index=5;
checked=false;
changed=true;
alarm[0]=1;
break;

case false:
image_index=2;
checked=true;
changed=true;
alarm[0]=1;
break;
}
")

object_event_add(cb, ev_left_release, 0, "
if disabled then exit

switch (checked) {
case true:
image_index=4;
break;

case false:
image_index=1;
break;
}
")

object_event_add(cb, ev_mouse_enter, 0, "
if disabled then exit

switch (checked) {
case true:
image_index=4;
break;   

case false:
image_index=1;
break;
}
")

object_event_add(cb, ev_mouse_leave, 0, "
if disabled then exit

switch (checked) {
case true:
image_index=3;
break;   

case false:
image_index=0;
break;
}
")

object_event_add(cb, ev_disabled, 0, "image_index=6")


global._cb=0
global.font=cb_default
global.color=c_black

y_Tiago

Número de Mensagens : 149
Idade : 19
Data de inscrição : 13/10/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Código com object_event_add

Mensagem por luiz_eldorado em Dom 06 Nov 2011, 19:17

Simples, você esqueceu que a variavel que você está criando, a "cb" é local. Ou seja, não vai funcionar se estiver num script, ela é local (do script). A solução seria usar ela como global.
Mas, nheu vô tê qui ficá colocano "global." toda hora, nhé?
Sim e não. Se você usar o "global." pra declará-la, sim. Mas se você usar este código aqui:
Código:
globalvar cb;
cb=object_add()
Aí não é necessario.

Até mais! cyclops

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum