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. |
Um código mais inteligente para conversão de moedas
- Mysterious Stranger
- Artista
- Reações: 0
- Mensagens: 62
- Localização: BH
-
- Contato:
Um código mais inteligente para conversão de moedas
Boa noite!
Eu fiz um sistema monetário no meu jogo parecido com o de Dragon age Origins onde o crédito é distribuído entre ouro, prata e cobre sendo que 100 cobre vale 1 prata e 100 prata vale 1 ouro.
Eu armazeno o crédito do jogador em uma variável e com um script de conversão eu faço a distribuição: Funciona perfeitamente e tudo, mas quando a quantia de crédito do jogador for muito grande, eu já estou vendo que vai ser um problema na questão de velocidade. Principalmente que estou fazendo esse jogo para plataforma mobile. Eu sou desenhista e meu forte não é programação por isso não estou conseguindo pensar em nada melhor.
Alguém teria uma ideia mais "otimizável" para chegar ao mesmo resultado?
Valeu qualquer ajudinha!
Eu fiz um sistema monetário no meu jogo parecido com o de Dragon age Origins onde o crédito é distribuído entre ouro, prata e cobre sendo que 100 cobre vale 1 prata e 100 prata vale 1 ouro.
Eu armazeno o crédito do jogador em uma variável e com um script de conversão eu faço a distribuição: Funciona perfeitamente e tudo, mas quando a quantia de crédito do jogador for muito grande, eu já estou vendo que vai ser um problema na questão de velocidade. Principalmente que estou fazendo esse jogo para plataforma mobile. Eu sou desenhista e meu forte não é programação por isso não estou conseguindo pensar em nada melhor.
Alguém teria uma ideia mais "otimizável" para chegar ao mesmo resultado?
Valeu qualquer ajudinha!
Re: Um código mais inteligente para conversão de moedas
Você pode fazer isso:
O div retorna a parte inteira divisão. Ex:
5 / 2 = 2,5
5 div 2 = 2
Mas teu código não é pesado demais, ele só faz operações básicas e tem apenas um loop (Complexidade N).
O que pode estar acabando com o desempenho é onde este seu código está localizado. Em eventos Draw, pode dar sim alguma diferença e grande, principalmente pra mobile.
Dica extra: utilize == ao invés de = nas comparações/condições, apesar do GM aceitar isso, é uma má prática de programação e pode te complicar ao usar outras linguagens.
Abraços o/
Código: Selecionar todos
vCredits = global.credito;
vOuro = vCredits div 10000;
vPrata = (vCredits - (vOuro * 10000)) div 100;
vCobre = (vCredits - (vOuro * 10000)) - (vPrata * 100);
5 / 2 = 2,5
5 div 2 = 2
Mas teu código não é pesado demais, ele só faz operações básicas e tem apenas um loop (Complexidade N).
O que pode estar acabando com o desempenho é onde este seu código está localizado. Em eventos Draw, pode dar sim alguma diferença e grande, principalmente pra mobile.
Dica extra: utilize == ao invés de = nas comparações/condições, apesar do GM aceitar isso, é uma má prática de programação e pode te complicar ao usar outras linguagens.
Abraços o/
- Mysterious Stranger
- Artista
- Reações: 0
- Mensagens: 62
- Localização: BH
-
- Contato:
Re: Um código mais inteligente para conversão de moedas
Obrigado, Alex.
Sim, eu coloquei justamente no DRAW. Senti umas agarradas bem rápidas, mas que não estavam lá antes do código.
Mais uma vez, obrigado pelo código camarada.
Sim, eu coloquei justamente no DRAW. Senti umas agarradas bem rápidas, mas que não estavam lá antes do código.
Sim. Assim como no PHP... apanho muito lá por conta desses detalhes.Dica extra: utilize == ao invés de = nas comparações/condições, apesar do GM aceitar isso, é uma má prática de programação e pode te complicar ao usar outras linguagens.
Mais uma vez, obrigado pelo código camarada.
Re: Um código mais inteligente para conversão de moedas
Outra maneira seria:
O mod retorna o resto da divisão. Ex:
5 mod 2 = 1
Código: Selecionar todos
vCredits = global.credito;
vOuro = vCredits div 10000;
vPrata = vCredits mod 10000 div 100;
vCobre = vCredits mod 100;
5 mod 2 = 1
- Mysterious Stranger
- Artista
- Reações: 0
- Mensagens: 62
- Localização: BH
-
- Contato:
Re: Um código mais inteligente para conversão de moedas
Valeu, Kapoty. Eu usei o código do Alex, mas esse mod vai me ajudar em um código de estatística que eu estou fazendo pro jogo.Kapoty escreveu:Outra maneira seria:
O mod retorna o resto da divisão. Ex:Código: Selecionar todos
vCredits = global.credito; vOuro = vCredits div 10000; vPrata = vCredits mod 10000 div 100; vCobre = vCredits mod 100;
5 mod 2 = 1
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes