Entrar
Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game makerpor Ralphed Ontem à(s) 18:28
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
Dúvida na sequência de execução de scripts.
2 participantes
Página 1 de 1
Dúvida na sequência de execução de scripts.
Fiz um script que cria objetos e suas instancias relacionadas ao mouse, funcionou perfeitamente.
Passei então para a próxima etapa fazendo outro script que altera algumas características dos objetos do primeiro script de acordo algumas regras definidas para o jogo.
Criei um objeto com D&D, só para testar, e nele um evento create com dois execute script, um pra cada script (na ordem correta).
Acontece que, quando executo o jogo, a tela fica vazia e executa os sons relativos ao segundo script e só então aparecem os objetos do primeiro script sendo que com as alterações relativas ao segundo.
Tudo funcionou, exeto pela ordem de execução.
Passei então para a próxima etapa fazendo outro script que altera algumas características dos objetos do primeiro script de acordo algumas regras definidas para o jogo.
Criei um objeto com D&D, só para testar, e nele um evento create com dois execute script, um pra cada script (na ordem correta).
Acontece que, quando executo o jogo, a tela fica vazia e executa os sons relativos ao segundo script e só então aparecem os objetos do primeiro script sendo que com as alterações relativas ao segundo.
Tudo funcionou, exeto pela ordem de execução.
Allan Dennis- Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Dúvida na sequência de execução de scripts.
Bom, você tem dois objetos: obj1 e obj2.
O obj1 é o primeiro a ser criado e o obj2 é criado com um script no evento Create do obj1.
O script no Create do obj1 é assim:
var1 = 10;
var2 = 10;
obj_id = instance_create(x,y,obj2);
with (obj_id)
{
x = 500;
y = 400;
forca = 10;
}
var3 = 50;
var4 = 60;
O execução de eventos ficaria nessa ordem:
obj1 - Create até a linha onde esta 'obj_id = instance_create(x,y,obj2);'
obj2 - Create - O obj2 executa seu Create
obj2 - Create - x, y e forca são definidas
obj1 - Create - a execução volta para o obj1 e continua de 'var3 = 50;' até a ultima linha
obj1 - Draw
obj2 - Draw
obj1 - Begin Step
obj2 - Begin Step
obj1 - Step
obj2 - Step
obj1 - End Step
obj2 - End Step
Depois do ultimo End Step a execução volta para o Draw do obj1 e se repeti.
Na verdade, na parte do instance_create e with, primeiro o Create do obj2 é executado ai volta para o obj1 depois o with faz voltar dinovo no obj2 e fazar ele definir as variaveis e ai sim volta para o obj1.
Isso é claro se você usasse só esses eventos.
Não entendi direito seu problema mas é assim a ordem de execução de eventos do GM.
O obj1 é o primeiro a ser criado e o obj2 é criado com um script no evento Create do obj1.
O script no Create do obj1 é assim:
var1 = 10;
var2 = 10;
obj_id = instance_create(x,y,obj2);
with (obj_id)
{
x = 500;
y = 400;
forca = 10;
}
var3 = 50;
var4 = 60;
O execução de eventos ficaria nessa ordem:
obj1 - Create até a linha onde esta 'obj_id = instance_create(x,y,obj2);'
obj2 - Create - O obj2 executa seu Create
obj2 - Create - x, y e forca são definidas
obj1 - Create - a execução volta para o obj1 e continua de 'var3 = 50;' até a ultima linha
obj1 - Draw
obj2 - Draw
obj1 - Begin Step
obj2 - Begin Step
obj1 - Step
obj2 - Step
obj1 - End Step
obj2 - End Step
Depois do ultimo End Step a execução volta para o Draw do obj1 e se repeti.
Na verdade, na parte do instance_create e with, primeiro o Create do obj2 é executado ai volta para o obj1 depois o with faz voltar dinovo no obj2 e fazar ele definir as variaveis e ai sim volta para o obj1.
Isso é claro se você usasse só esses eventos.
Não entendi direito seu problema mas é assim a ordem de execução de eventos do GM.
Re: Dúvida na sequência de execução de scripts.
Allan Dennis escreveu:Acontece que, quando executo o jogo, a tela fica vazia e executa os sons relativos ao segundo script e só então aparecem os objetos do primeiro script sendo que com as alterações relativas ao segundo.
Tudo funcionou, exeto pela ordem de execução.
Se eu entendi direito, acho que o que pode estar havendo é apenas uma "impressão" de que o objeto é criado depois. Os sons serão executados no evento create normalmente (junto com todo o código), porém, a impressão que se tem é de que os objetos serão criados depois, já que tem que haver atualização do step para perceber o objeto na room.
Se você definir a velocidade da room bem baixa, é possível que aconteça isso mesmo. Isso se eu tiver entendido direito o que aconteceu com você aí.
Convidad- Convidado
Re: Dúvida na sequência de execução de scripts.
Kabeção, acho que não entendeu a pergunta, talvêz eu não tenha sido claro o suficiente.
Objetivo:
O Script_1 cria os objetos já com suas características definidas e os coloca na tela.
O Script_2 altera algumas características de alguns objetos criados no Script_1
Aí vai parte do código (simplificado):
Script_1:
Obj1=object_add();
instance_create(10,10,Obj1);
with(Obj1){sprite_index=Spt1;visible=true; depth=0;};
Obj2=object_add();
instance_create(10,20,Obj2);
with(Obj2){sprite_index=Spt1;visible=true; depth=0;};
Script_2:
sleep(1000);
i=0;
while (i<5)
{
Teste=irandom_range(1,2);
if Teste = 1 {with(Obj1){sprite_index=Spt2;sound_play(Snd1);sleep(500);}};
if Teste = 2 {with(Obj2){sprite_index=Spt2;sound_play(Snd2);sleep(500);}};
i+=1;
}
Room0 Creation Code:
script_execute(Script_1);
script_execute(Script_2);
Resultado (não desejado):
Abre a janela sem nada, executa o Script_2 (só o som),
Só depois do último som aparecem os objetos criados pelo Script_1, porém com os sprites já alterados pelo script_2.
Se puderem, façam o teste aí pra visualizarem melhor o problema.
Objetivo:
O Script_1 cria os objetos já com suas características definidas e os coloca na tela.
O Script_2 altera algumas características de alguns objetos criados no Script_1
Aí vai parte do código (simplificado):
Script_1:
Obj1=object_add();
instance_create(10,10,Obj1);
with(Obj1){sprite_index=Spt1;visible=true; depth=0;};
Obj2=object_add();
instance_create(10,20,Obj2);
with(Obj2){sprite_index=Spt1;visible=true; depth=0;};
Script_2:
sleep(1000);
i=0;
while (i<5)
{
Teste=irandom_range(1,2);
if Teste = 1 {with(Obj1){sprite_index=Spt2;sound_play(Snd1);sleep(500);}};
if Teste = 2 {with(Obj2){sprite_index=Spt2;sound_play(Snd2);sleep(500);}};
i+=1;
}
Room0 Creation Code:
script_execute(Script_1);
script_execute(Script_2);
Resultado (não desejado):
Abre a janela sem nada, executa o Script_2 (só o som),
Só depois do último som aparecem os objetos criados pelo Script_1, porém com os sprites já alterados pelo script_2.
Se puderem, façam o teste aí pra visualizarem melhor o problema.
Allan Dennis- Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Dúvida na sequência de execução de scripts.
Acho que o que tá acontecendo é o fato de que o sleep() tá parando o código. O redraw da tela do jogo só é feito depois de todo o código ser executado! Coloca no Script_2 (dentro do while):
Só pra ressalvar, você pode usar seus scripts sem usar o script_execute, apenas digitando o nome dele e os argumentos:
Você também poderia substituir o while pelo "repeat" (se não estiver usando a variável "i") e o seu script "irandom_range" por "choose()":
Boa sorte.
- Código:
screen_redraw(); screen_refresh();
Só pra ressalvar, você pode usar seus scripts sem usar o script_execute, apenas digitando o nome dele e os argumentos:
- Código:
Script_1();
Script_2();
Você também poderia substituir o while pelo "repeat" (se não estiver usando a variável "i") e o seu script "irandom_range" por "choose()":
- Código:
sleep(1000);
repeat (5)
{
Teste=choose(1,2);
if Teste = 1 {with(Obj1){sprite_index=Spt2;sound_play(Snd1);sleep(500);}};
if Teste = 2 {with(Obj2){sprite_index=Spt2;sound_play(Snd2);sleep(500);}};
}
Boa sorte.
Convidad- Convidado
Tópicos semelhantes
» DÚVIDA/AJUDA: Carregar sprite externo em tempo de execução
» Duvida com scripts
» Dúvida nos Scripts
» [duvida]Scripts
» [Resolvido]Dúvida com Scripts
» Duvida com scripts
» Dúvida nos Scripts
» [duvida]Scripts
» [Resolvido]Dúvida com Scripts
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|