Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» 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
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
Formula para interpolação de valores
4 participantes
Página 1 de 1
Formula para interpolação de valores
Fiquei sabendo que tem uma formula bem simples para interpolar valores de maneira suavizada, por exemplo, começar o movimento rápido e quanto mais perto do ponto desejado mais lento fica.
Dá para fazer efeitos bem legais como suavizar o movimento da view, fazer a barra de hp encher ou diminuir com interpolação entre outras coisas.
Mas não consegui achar em lugar nem um.
Alguem ai sabe?
Dá para fazer efeitos bem legais como suavizar o movimento da view, fazer a barra de hp encher ou diminuir com interpolação entre outras coisas.
Mas não consegui achar em lugar nem um.
Alguem ai sabe?
DS Santos- Data de inscrição : 19/05/2010
Reputação : 2
Número de Mensagens : 98
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Formula para interpolação de valores
A formula é:
É algo realmente simples é extremamente funcional.
Basta deixar em um evento como o Step que o p1 vai ser interpolado para o p2 sem falhas ou erros mesmo que o código esteja sendo executado o tempo inteiro no jogo.
Sendo assim, simplesmente redefina o p2 para que o efeito aconteça.
O fator é basicamente a velocidade.
Estou usando bastante graças a customização fácil que proporciona.
Você pode até interpolar a volume da musica.
A música esta com 100% do volume mas ai você troca para 50%, ao invés de ir direto para 50 eu uso essa fórmula para ir diminuindo até chegar no ponto definido simplesmente mudando o p2.
Quando menor o fator, maior a velocidade do movimento.
Para o controle da view seria algo assim:
A variação das casas decimais pode ser muito grande então eu uso round para não tremer.
- Código:
p1 = ( ((p1)*(fator-1)+p2)/fator );
É algo realmente simples é extremamente funcional.
Basta deixar em um evento como o Step que o p1 vai ser interpolado para o p2 sem falhas ou erros mesmo que o código esteja sendo executado o tempo inteiro no jogo.
Sendo assim, simplesmente redefina o p2 para que o efeito aconteça.
O fator é basicamente a velocidade.
Estou usando bastante graças a customização fácil que proporciona.
Você pode até interpolar a volume da musica.
A música esta com 100% do volume mas ai você troca para 50%, ao invés de ir direto para 50 eu uso essa fórmula para ir diminuindo até chegar no ponto definido simplesmente mudando o p2.
- Código:
volume_atual = round( ((volume_atual)*7+volume_definido)/8 );
Quando menor o fator, maior a velocidade do movimento.
Para o controle da view seria algo assim:
- Código:
// Suavizar movimento
view_xview=round(((view_xview[0])*6+player.x-(view_wview/2))/7);
view_yview=round(((view_yview[0])*6+player.y-(view_hview/2))/7);
// Impedir de sair dos limites
view_xview=max(0,view_xview);
view_xview=min(view_xview,room_width-view_wview);
view_yview=max(0,view_yview);
view_yview=min(view_yview,room_height-view_hview);
A variação das casas decimais pode ser muito grande então eu uso round para não tremer.
Re: Formula para interpolação de valores
Muito interessante esse cálculo! Não sabia que ja tinha uma formula pra isso, eu ia acabar fazendo a minha mesmo hehehe! Isso serve pra muita coisa! Show!Kabeção escreveu:A formula é:
- Código:
p1 = ( ((p1)*(fator-1)+p2)/fator );
É algo realmente simples é extremamente funcional.
Basta deixar em um evento como o Step que o p1 vai ser interpolado para o p2 sem falhas ou erros mesmo que o código esteja sendo executado o tempo inteiro no jogo.
Sendo assim, simplesmente redefina o p2 para que o efeito aconteça.
O fator é basicamente a velocidade.
Estou usando bastante graças a customização fácil que proporciona.
Você pode até interpolar a volume da musica.
A música esta com 100% do volume mas ai você troca para 50%, ao invés de ir direto para 50 eu uso essa fórmula para ir diminuindo até chegar no ponto definido simplesmente mudando o p2.
- Código:
volume_atual = round( ((volume_atual)*7+volume_definido)/8 );
Quando menor o fator, maior a velocidade do movimento.
Para o controle da view seria algo assim:
- Código:
// Suavizar movimento
view_xview=round(((view_xview[0])*6+player.x-(view_wview/2))/7);
view_yview=round(((view_yview[0])*6+player.y-(view_hview/2))/7);
// Impedir de sair dos limites
view_xview=max(0,view_xview);
view_xview=min(view_xview,room_width-view_wview);
view_yview=max(0,view_yview);
view_yview=min(view_yview,room_height-view_hview);
A variação das casas decimais pode ser muito grande então eu uso round para não tremer.
Re: Formula para interpolação de valores
Perfeito! Não sabia dessa fórmula!
Esse movimento suavizado da view é algo que eu já venho tentando fazer a tempos, desenvolvi códigos enormes mas que nunca funcionavam! =D
Dei uma estudada no código, acho q entendi como funciona
Bem, agora vai ter um monte de gente copiando ele e colando em seus jogos, mas desde que não saibam como ele funciona, sugiro nem copiar
Esse movimento suavizado da view é algo que eu já venho tentando fazer a tempos, desenvolvi códigos enormes mas que nunca funcionavam! =D
Dei uma estudada no código, acho q entendi como funciona
Bem, agora vai ter um monte de gente copiando ele e colando em seus jogos, mas desde que não saibam como ele funciona, sugiro nem copiar
SIGILOSO- Games Ranking :
Notas recebidas : A+A+A+A+A+A+A
Data de inscrição : 06/06/2009
Reputação : 39
Número de Mensagens : 2267
Prêmios :
x 0 x 2 x 0
x 4 x 2 x 1
x 0 x 0 x 0
Re: Formula para interpolação de valores
Legal, bem fácil.
Funciona ainda melhor do que eu esperava.
Posso fazer uma mensagem entrar e sair da tela com isso é o movimento fica ótimo.
Vlw!
Funciona ainda melhor do que eu esperava.
Posso fazer uma mensagem entrar e sair da tela com isso é o movimento fica ótimo.
Vlw!
DS Santos- Data de inscrição : 19/05/2010
Reputação : 2
Número de Mensagens : 98
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Formula para interpolação de valores
Também já havia quebrado a cabeça para dar um movimento melhor para a view, e pensar que poderia ser tão simples. xDSIGILOSO escreveu:Perfeito! Não sabia dessa fórmula!
Esse movimento suavizado da view é algo que eu já venho tentando fazer a tempos, desenvolvi códigos enormes mas que nunca funcionavam! =D
Dei uma estudada no código, acho q entendi como funciona
Bem, agora vai ter um monte de gente copiando ele e colando em seus jogos, mas desde que não saibam como ele funciona, sugiro nem copiar
Bom, como eu não sou de dar informação pela metade, quem gostou e não entendeu como funciona veja:
Por algum motivo [stroke]inexplicável[/stroke] você precisa comer 100 maças, como qualquer humano normal quanto mais come mais lento fica o processo para engolir outra.
Como calculariamos isso?
maça_atual = round( ((maça_atual)*(7)+20)/8 );
Começo com 100 mas no final desmaio faltando 20 para terminar ( xD ).
100 * 7 = 700
700 + 20 = 720
720/8 = 90 // no primeiro "step" já comeu 10, faltam 90
90*7 = 630
630 + 20 = 650
650/8 = 81,25 // no segundo "step" faltam 81
81*7 = 567
567 + 20 = 587
567/8 = 73,37 // no segundo "step" faltam 73
Não a muito o que entender sobre isso.
É como usar "valor *= 0.1" (diminuir 10% a cada step até dar 0) só que com essa fórmula você pode definir o valor a se alcançar (diferente de 0).
Tópicos semelhantes
» Progressão Aritmética e Geométrica / Interpolação
» [Resolvido]Variável com muitos valores.
» Dúvida nos valores de variáveis
» Como funciona está formula
» Abrir salvar valores de variaveis
» [Resolvido]Variável com muitos valores.
» Dúvida nos valores de variáveis
» Como funciona está formula
» Abrir salvar valores de variaveis
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|