Entrar
Últimos assuntos
» Servidor de Discord do fórum?por Super Games Ontem à(s) 01:27
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Qui 16 maio 2024, 18:10
» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» 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
» 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
Como fazer uma variável não mudar o valor entre rooms
3 participantes
Página 1 de 1
Como fazer uma variável não mudar o valor entre rooms
No jogo roguelike que desenvolvo tem um sistema de gemas no menu dele. Quando eu começo o jogo, pego as gemas e volto para o menu, beleza, está lá as gemas, mas quando eu começo mais um jogo e volto novamente para o menu, as gemas do jogo anterior resetam e só adiciona as do útimo jogo.
Eu tentei fazer o seguinte: Criei uma sala para começar antes da sala do menu, que tem um objeto controle que no "Game Start Event" criava a variável global.gemas, e este objeto era persistente. Porém o mesmo erro continua.
Eu tentei fazer o seguinte: Criei uma sala para começar antes da sala do menu, que tem um objeto controle que no "Game Start Event" criava a variável global.gemas, e este objeto era persistente. Porém o mesmo erro continua.
LittenPL- Games Ranking :
Data de inscrição : 08/08/2022
Reputação : 0
Número de Mensagens : 4
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer uma variável não mudar o valor entre rooms
Olá e bem vindo
Me parece que no momento que tu está iniciando o jogo, está resetando o contador de gemas, e então por isso que a cada novo jogo, as anteriores são resetadas.
Mas ficará melhor de ajudar caso postar os códigos das partes envolvidas nesse processo das gemas.
Me parece que no momento que tu está iniciando o jogo, está resetando o contador de gemas, e então por isso que a cada novo jogo, as anteriores são resetadas.
Mas ficará melhor de ajudar caso postar os códigos das partes envolvidas nesse processo das gemas.
Re: Como fazer uma variável não mudar o valor entre rooms
Eu tenho 3 rooms na seguinte ordem
1: Tela Inicial
2:Menu Inicial
3:Jogo principal
Na primeira room tem o objeto de controle que é persistente com o seguinte código na "Game Start Event":
1: Tela Inicial
2:Menu Inicial
3:Jogo principal
Na primeira room tem o objeto de controle que é persistente com o seguinte código na "Game Start Event":
- Código:
global.gemas = 0;
- Código:
draw_text(x + 0, y + 0, string("") + string(global.gemas));
- Código:
global.gemas += 1;
instance_destroy();
LittenPL- Games Ranking :
Data de inscrição : 08/08/2022
Reputação : 0
Número de Mensagens : 4
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Y0hh gosta desta mensagem
Re: Como fazer uma variável não mudar o valor entre rooms
LittenPL escreveu:Eu tenho 3 rooms na seguinte ordem
1: Tela Inicial
2:Menu Inicial
3:Jogo principal
Na primeira room tem o objeto de controle que é persistente com o seguinte código na "Game Start Event":Na segunda room tem o objeto que mostra o valor desta variável com o seguinte código na "Draw Event":
- Código:
global.gemas = 0;
E na última room tem o objeto gema com o seguinte código na "Collision Event: Player":
- Código:
draw_text(x + 0, y + 0, string("") + string(global.gemas));
E é assim que está o código que faz parte do sistema de gemas. Só que o erro continua
- Código:
global.gemas += 1;
instance_destroy();
Game Start Event, em vez de armazena a váriavel nesse evento, tenta pelo Create, ou o erro permanece?
Y0hh- Data de inscrição : 25/07/2022
Reputação : 8
Número de Mensagens : 13
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 1.4
- Unity
- Javascript
- Outros
Re: Como fazer uma variável não mudar o valor entre rooms
LittenPL, não precisa mais responder nenhuma mais das minhas questões, consegui ter uma idéia do que você queria (Pelo menos eu acho né).
Eu vou te mostrar, como eu consegui fazer o Sistema de Pontos, você pode alterar como sua preferência.
[1]: Primeiro, pelo o que eu vejo, você criou um Banco de Dados até que simples, mas ele não funciona muito bem(Não querendo julgar), então eu recomendo fazer assim, vai na pasta Scripts e crie um Script chamado I_S, esse Script que iremos escrever, ele vai salvar o total de Pontos que o Jogador conseguiu numa partida.
Script:
[2]: Depois disso, iremos criar um Script que irá carregar as informações que salvamos no Banco de Dados, iremos chama-lo de "I_L", pode colocar qualquer nome que você quiser. agora você irá escrever esse Script:
AVISO: Sabe essa variável chamado "global.scorepoint", então essa váriavel é a váriavel de pontos que você colocou o "global.gemas", depois você muda se quiser, se você não mudar, o código pode dá errado.
Continuando...
Na primeira Sala, que você disse o "Game Start Event", o objeto de controle:
[3]: Na sala "Jogo Principal", aonde você disse que contém um objeto gema, no "Colission Event Player":
LEMBRANDO QUE: o arquivo de salvação estará salvo nesse diretório:
C:\Users\NomeDoUsuáriodoPC\AppData\Local\T33765
FIM! Bem, terminamos, foi muito simples né? Bem, qualquer dúvida eu irei responder, caso você não conseguiu entender muito bem os código, eu vou disponibilizar um arquivo aonde eu testei o código para ver se funciona, ai você pode dá uma arrumada e colocar no seu projeto(Se tiver BUGS também, me avisa), boa noite.
https://www.mediafire.com/file/oaypjigrwmgwxqh/T33765.gmz/file
Eu vou te mostrar, como eu consegui fazer o Sistema de Pontos, você pode alterar como sua preferência.
[1]: Primeiro, pelo o que eu vejo, você criou um Banco de Dados até que simples, mas ele não funciona muito bem(Não querendo julgar), então eu recomendo fazer assim, vai na pasta Scripts e crie um Script chamado I_S, esse Script que iremos escrever, ele vai salvar o total de Pontos que o Jogador conseguiu numa partida.
Script:
- Código:
// Salvar Pontos
// Esse Script, chamado "INI", é um Script que cria um texto que armazena Banco de Dados.
// É um Script do própio GameMaker, que está disponível em quase todas as versões.
// Eu recomendo ler também um pouco sobre esse Script.
ini_open(working_directory + "data.ini"); // Esse Script vai salvar no Diretório do seu Jogo.
ini_write_real("score", "point", global.scorepoint); // Total de Pontos, você pode mudar isso nas configurações no arquivo, se for pra ser um jogo Online ou algo do tipo [... ]
// Recomendo que você tente codificar bem o código, é bem simples de fazer, use estratégia.
ini_close(); // Esse Script, verifica se todas as informações foram salvas, se foram, fechar para que não precise ficar fazendo processo de salvamento, já que todas as informações foram salvas.
// Termino
[2]: Depois disso, iremos criar um Script que irá carregar as informações que salvamos no Banco de Dados, iremos chama-lo de "I_L", pode colocar qualquer nome que você quiser. agora você irá escrever esse Script:
- Código:
// Carregar Pontos
// Esse Script vai carregar o Salvamento dos Pontos.
ini_open(working_directory + "data.ini") // Verificar o Arquivo, qual arquivo vai ser carregado.
global.scorepoint = ini_read_real("score", "point", 0); // Padrão de como será o Score.
ini_close(); // Se todos os Arquivos foram carregados, fechar para que não fique dando processo.
// Termino
AVISO: Sabe essa variável chamado "global.scorepoint", então essa váriavel é a váriavel de pontos que você colocou o "global.gemas", depois você muda se quiser, se você não mudar, o código pode dá errado.
Continuando...
Na primeira Sala, que você disse o "Game Start Event", o objeto de controle:
- Código:
global.gemas = 0;
- Código:
I_S();
I_L();
global.gemas = 0;
[3]: Na sala "Jogo Principal", aonde você disse que contém um objeto gema, no "Colission Event Player":
- Código:
global.gemas += 1;
instance_destroy();
- Código:
global.gemas += 1;
I_S();
instance_destroy();
LEMBRANDO QUE: o arquivo de salvação estará salvo nesse diretório:
C:\Users\NomeDoUsuáriodoPC\AppData\Local\T33765
FIM! Bem, terminamos, foi muito simples né? Bem, qualquer dúvida eu irei responder, caso você não conseguiu entender muito bem os código, eu vou disponibilizar um arquivo aonde eu testei o código para ver se funciona, ai você pode dá uma arrumada e colocar no seu projeto(Se tiver BUGS também, me avisa), boa noite.
https://www.mediafire.com/file/oaypjigrwmgwxqh/T33765.gmz/file
Última edição por Y0hh em Qui 11 Ago 2022, 01:16, editado 1 vez(es) (Motivo da edição : Esqueci de colocar mais informações ksksksk)
Y0hh- Data de inscrição : 25/07/2022
Reputação : 8
Número de Mensagens : 13
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 1.4
- Unity
- Javascript
- Outros
theguitarmester gosta desta mensagem
Re: Como fazer uma variável não mudar o valor entre rooms
Cara, valeu mesmo, eu já sabia usar os arquivos ini, só pensava que não precisaria usá-lo para uma variável como esta dentro do jogo. E com toda essa sua bela explicação, vai ser bem mais fácil, valeu mesmo, foi de grande ajuda.
LittenPL- Games Ranking :
Data de inscrição : 08/08/2022
Reputação : 0
Número de Mensagens : 4
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer uma variável não mudar o valor entre rooms
LittenPL escreveu:Cara, valeu mesmo, eu já sabia usar os arquivos ini, só pensava que não precisaria usá-lo para uma variável como esta dentro do jogo. E com toda essa sua bela explicação, vai ser bem mais fácil, valeu mesmo, foi de grande ajuda.
Pra mim foi uma honra te ajudar, eu gosto disso, obrigado pelo elogio e boa sorte <3
Y0hh- Data de inscrição : 25/07/2022
Reputação : 8
Número de Mensagens : 13
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 1.4
- Unity
- Javascript
- Outros
Tópicos semelhantes
» [Resolvido]Variavel mudar de posição
» Como mudar um objeto com variavel
» Variavel mudar de string inesperadamente
» Mudar SPRITE ou OBJETO de acordo com uma variável
» pior bug que ja vi, eu criei a variavel e o gm insiste que a variavel não existe
» Como mudar um objeto com variavel
» Variavel mudar de string inesperadamente
» Mudar SPRITE ou OBJETO de acordo com uma variável
» pior bug que ja vi, eu criei a variavel e o gm insiste que a variavel não existe
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|