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.

Passar de room

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Nat_2005
Novato
Novato
Reações: 0
Mensagens: 19
Contato:

Passar de room

Mensagem por Nat_2005 » Qua Dez 20, 2023 7:32 pm

Tem algo muito simples que não está dando certo no meu código, eu não consigo passar de room.
Eu tenho esse código:

obj_player > creat

Código: Selecionar todos

ori_scr = 0
scr = 99999999;
clickValue = 1;
upgradeCost = 150;
ganhou = false
obj_player > step

Código: Selecionar todos

// Verifica se a pontuação é atingida
if (scr >= 100000000) {
    ganhou = true;
}

if (ganhou == true) {
    room_goto(rm_02);
}

if (keyboard_check_pressed(vk_space)){
	scr+=clickValue;
}
obj_player > draw_GUI

Código: Selecionar todos

draw_text(64, 64, string(obj_player.ganhou))
draw_text(64, 128, string(room))
Usando o draw_GUI, percebi que minha variável ganhou não se torna true quando o player atingi a pontuação máxima, logo ele chega as condições necessárias para passar de room.

Meu player atingi a pontuação máxima, mas o ganhou não se torna true, logo ele não passar de room.

Alguém tem algum palpite do que poderia ser?

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Passar de room

Mensagem por All-x » Qui Dez 21, 2023 12:59 pm

A lógica desse código está ok. É só criar um projeto em branco e testar que funciona certinho só com isso que postou.

Logo o erro não está nestes códigos aí.

Hipóteses:

1 - O player é persistente logo quando chega na pontuação ela não é resetada quando troca de room, pois o player não é recriado. Criando um loop eterno, dai seria só desmarcar a opção persistente do player.

2 - Alguma das variáveis já existe globalmente, ou seja foi criada usando globalvar. Dai seria só questão de trocar o nome das variáveis (principalmente a var 'ganhou').

3 - Outro código está impedindo de chegar nesse trecho que postou, dai só tendo código completo pra saber.
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Nat_2005
Novato
Novato
Reações: 0
Mensagens: 19
Contato:

Re: Passar de room

Mensagem por Nat_2005 » Qui Dez 21, 2023 4:30 pm

Tive que fazer muita coisa para descobrir o problema, desconfio que era meu obj_score que estava dando esse bug, não tenho certeza. Mas ainda tem algo estranho acontecendo. Eu criei uma variável global no lugar da variável ganhou, e essa varável tbm não fica true nunca. Veja o código:

obj_player > creat:

Código: Selecionar todos

ori_scr = 0
scr = 99999999;
clickValue = 1;
global.congrt = false;
obj_player > step:

Código: Selecionar todos

if (scr >= 100000000) {
    global.congrt = true;
}

if (global.congrt == true) {
    room_goto(Room3);
    //sim, eu mudei a room para saber se o problema era a room rm_02 que estava com problema.
}

if (keyboard_check_pressed(vk_space)){
	scr+=clickValue;
}
obj_player > draw:

Código: Selecionar todos

if global.congrt == false{
	draw_text(64, 64, "false");
}
else{
	draw_text(64, 64, "true");
}
draw_text(64, 128, string(room))


Apesar do player mudar de room normalmente, o global.congrt não fica true.

Eu tirei tudo do meu jogo, tirei todos os objetos da sala e até apeguei alguns, mas esse bug continua. Será que o poblema é a IDE? Meu Game Maker Studio 2 está na última atualização.

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Passar de room

Mensagem por All-x » Qui Dez 21, 2023 5:09 pm

Ué, mas você reinicia ela pra false no Create 🫠

1 - Ela troca pra true no Step ;
2 - Vai pra próxima room;
3 - O Create do player é executado de novo e volta pra false (é uma fração de segundo 1/60, não tem como ver no draw).

Se você quer que uma variável só inicialize uma vez, use o evento Game Start ao invés do Create. Desde que seja uma variável global ela vai continuar acessível depois.
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante