Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

ERROR MOUSECLICK Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Z3US4000
Membro
Membro
Reações: 1
Mensagens: 23

ERROR MOUSECLICK

Mensagem por Z3US4000 » Dom Abr 30, 2023 5:12 pm

Ola(novamente)estou com um problema onde eu tento entrar numa room duplicada que eu fiz mas nao da certo e da aquele erro com uma tela branca dizendo que a minha variavel "MouseClick" no step do player nao esta sendo lida e nao sei o motivo, queria saber se poderiam me ajudar.Codigo abaixo:

codigos do player:

if(global.MouseClick)
{
x= lerp(x, global.posMouseX, 0.05);
}

x= clamp(x,128,355);

e so acontece na room duplicada, eu tbm dupliquei o obj_control o codigo dele esta abixo:
step:
global.posMouseX= mouse_x;
global.MouseClick= mouse_check_button(mb_left);

mpecorridos++;

if(mpecorridos > 1000 and mpecorridos < 2000)
{
kmfaltantes= 2;
}
else if(mpecorridos > 2000 and mpecorridos < 3000)
{
kmfaltantes= 0;
}
else if(mpecorridos > 3000)
{
kmfaltantes= 0;
}

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 5
Mensagens: 198

Re: ERROR MOUSECLICK

Mensagem por Chuaschinai » Dom Abr 30, 2023 9:52 pm

Provavelmente porque a variável global.MouseClick não foi inicializada a tempo, para que o if do objeto controle o pudesse checar, se você inicializar ela no Event Create do objeto, ou em um script separado, vai funcionar normalmente, pois as variáveis globais e macros são lidas antes do jogo iniciar, porém como esta no step ele precisa de pelo menos um frame do jogo para inicializar, e é quando ocorre o erro.

Uma dica, você pode pode usar o mouse_check_button com macros é mais simples, e não precisa do global, e não precisara checar ele a todo momento no step igual o global.MouseClick que você fez, veja:

Código: Selecionar todos

#macro MouseClick mouse_check_button(mb_left)
Macros são inicializadas ou no Create ou em Scripts tambem para evitar problemas, não precisa do sinal de igual para atribuir e nem ponto e virgula no final pois causa erro, e para utiliza-lo é so usar igual o global.MouseClick:

Código: Selecionar todos

if(MouseClick)
{
	x= lerp(x, global.posMouseX, 0.05);
}

Avatar do usuário
Z3US4000
Membro
Membro
Reações: 1
Mensagens: 23

Re: ERROR MOUSECLICK

Mensagem por Z3US4000 » Seg Mai 01, 2023 11:06 am

Ola n deu certo(infelizmente) apareceu a mesma mensagem e agora esta dando erro na sintaxe no step do obj_control2:

else if(mpecorridos > 3000)
{
kmfaltantes= 0;
} <<< dando erro aqui,n sei porq?
e eu coloquei numa script separada e criei ate um creat para botar o macro mas nao deu certo.

obg pela ajuda🙂

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 5
Mensagens: 198

Re: ERROR MOUSECLICK

Mensagem por Chuaschinai » Seg Mai 01, 2023 11:52 am

Você consegue postar o código de ambos os objetos aqui, para que eu possa dar uma olhada?.
Lembrando que se você for utilizar a macro não precisa utilizar o global, pois se ambos estiveram com o mesmo nome da erro tambem.

Avatar do usuário
Z3US4000
Membro
Membro
Reações: 1
Mensagens: 23

Re: ERROR MOUSECLICK

Mensagem por Z3US4000 » Seg Mai 01, 2023 2:22 pm

step do obj_control:

global.posMouseX= mouse_x;
global.MouseClick= mouse_check_button(mb_left);

mpecorridos++;

if(mpecorridos > 1000 and mpecorridos < 2000)
{
kmfaltantes= 1;
}
else if(mpecorridos > 2000)
{
kmfaltantes= 0;
}

step do obj_control2:

global.posMouseX= mouse_x;
global.MouseClick= mouse_check_button(mb_left);

mpecorridos++;

if(mpecorridos > 1000 and mpecorridos < 2000)
{
kmfaltantes= 2;
}
else if(mpecorridos > 2000 and mpecorridos < 3000)
{
kmfaltantes= 1;
}
else if(mpecorridos > 3000)
{
kmfaltantes= 0;
}

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 5
Mensagens: 198

Re: ERROR MOUSECLICK  Tópico resolvido

Mensagem por Chuaschinai » Seg Mai 01, 2023 4:15 pm

Colocando o global.MouseClick= mouse_check_button(mb_left); previamente em um script deve funcionar independente da room, pois as variáveis globais não depende de room, então estarão sempre acessíveis de qualquer lugar.
Quando colocar em um script não precisa colocar dentro da função do script, deixar ela somente solta fora de um função, pois se estiver dentro de um função precisara chamar a função para iniciar a variável.

Responder

Quem está online

Usuários navegando neste fórum: Google [Bot] e 9 visitantes