GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 18:28

» 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

» 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


Como funciona está formula

+2
luiz_eldorado
Black Studio
6 participantes

Ir para baixo

Como funciona está formula Empty Como funciona está formula

Mensagem por Black Studio Qui 12 Jul 2012, 18:33

Eae pessoal, faz um tempo que eu não posto aqui, mas eu gostaria de saber, como funciona está formula, ela serve para que mesmo que o FPS de jogo esteja em 9999, o objeto se movimente em sua velocidade normal por exemplo...
Código:
valor*(60/max(fps,1))
Eu quero implementar isto em meu jogo, porém eu não sei como ela funciona, e saber isso vai ser muito importante para mim, e para meus projetos, se alguém puder me explicar direitinho cada coisinha ali, eu vou ficar muito agradecido ( Inclusive para que serve a função "max")

Obrigado,
Black Studio
Black Studio

Games Ranking : Nota C

Notas recebidas : C + C
Data de inscrição : 19/10/2011
Reputação : 9
Número de Mensagens : 337
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por luiz_eldorado Qui 12 Jul 2012, 18:52

Funkbuster escreveu:para que mesmo que o FPS de jogo esteja em 9999, o objeto se movimente em sua velocidade normal por exemplo...
Se for pra isto, estão o room_speed basicamente já está fazendo isto.
Funkbuster escreveu:( Inclusive para que serve a função "max")
A função "max" retorna o máximo dos valores (o maior)
Esta fórmula, de certa forma, não serve pra nada e nem funciona pois não é um "assignment", mas acho que se você colocar um "room_speed=" no começo do código, no lugar de valor por 60, e trocar todos os "60" pelo valor da room_speed que você quer, acho que funciona.
luiz_eldorado
luiz_eldorado

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 30/07/2011
Reputação : 47
Número de Mensagens : 928
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://luizpontes.tk/

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por Black Studio Qui 12 Jul 2012, 18:56

Funciona sim, perfeitamente por sinal, se quiser testar, faça um objeto com esse código no step :

Código:
if keyboard_check(vk_left) then x-=5*(60/max(fps,1))
if keyboard_check(vk_right) then x+=5*(60/max(fps,1))
if keyboard_check(vk_up) then y-=5*(60/max(fps,1))
if keyboard_check(vk_down) then y+=5*(60/max(fps,1))

//Aperte F para escolher o FPS
if keyboard_check(ord('F')) then room_speed = get_integer("room_speed:",room_speed);
Teste, tenho certeza de que entenderá melhor a minha pergunta...
Black Studio
Black Studio

Games Ranking : Nota C

Notas recebidas : C + C
Data de inscrição : 19/10/2011
Reputação : 9
Número de Mensagens : 337
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por theguitarmester Qui 12 Jul 2012, 19:11

A função "max" retorna o máximo dos valores (o maior)
Exemplo:
valor1=15 valor2=35
valor3=max(valor1*2,valor2+) // retorna o valor máximo, que aqui será o valor2(que é 35)+5 e o valor3 será 40 ; o 1 é 30.
agora se o valor1 for = a 25 o valor do 3 será 50, porque é o valor maior.
_______________________
eu acho que o que você quer tem mais a ver com o Room Speed que com o Frames Per Second(FPS) então coloque assim:
valor*(room_speed/velocidadepadrao) // velocidadepadrao seria como a real que você colocou para funcionar.
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2209
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por PedroX Qui 12 Jul 2012, 19:18

A lógica é:

x += velocidade * (room_speed / fps)

Então se o fps for igual a room_speed, o resultado dos parênteses será 1 e ele andará na velocidade indicada.

Se o fps for metade do room_speed, o resultado será 2 e ele andará no dobro da velocidade.

Ou seja, se o jogo for 2 vezes mais lento, ele andará 2 vezes mais rápido, compensando o problema.

Mas é claro que se o FPS estiver muito baixo, você irá ver seu personagem saltar grandes posições na tela.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por Black Studio Sex 13 Jul 2012, 01:25

Hm, eu entendi, mas pelo que eu andei testando, essa formula não funciona Tãaao bem, pois eu quero que o jogo rode normalmente, com o room_speed ilimitado, como os jogos de FPS e etc...

Eu andei procurando, e pelo que eu vi na YoyoGames, isso se chama "Delta Time", então eu achei isso : LINK
Espero que funcione, vou testar, logo logo eu dou um edit...

EDIT : Fail, ele só funciona se existir um FPS limite definido, por exemplo se tiver 30 FPS, ele vai ficar mais devagar que 60 FPS...Caso alguém aí ache algo que funcione para um FPS sem limite, deixe no tópico aqui por favor, até!

Dei mais uma procurada, e achei esta extensão : High Resolution Timer
Porém tem um problema, eu nem sei por onde começar D= Eu sempre fui péssimo com extensões, então se alguém puder me dar uma mãozinha, eu ficaria muito agradecido c:

Até mais!
Black Studio
Black Studio

Games Ranking : Nota C

Notas recebidas : C + C
Data de inscrição : 19/10/2011
Reputação : 9
Número de Mensagens : 337
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por KinKing Sex 13 Jul 2012, 12:09

Você entende que no caso da fórmula FPS = Frames Per Second, e no caso de jogos FPS = First Person Shooter, certo?

Caso a parte, a enorme maioria dos jogos, especialmente os de qualidade, rodam a 60fps... não ilimitado. Tenho certeza de que há exceções, é claro.

Testes de benchmark podem tentar o maior fps possível, mas é para testar a capacidade da sua máquina.
KinKing
KinKing

Data de inscrição : 29/05/2008
Reputação : 16
Número de Mensagens : 422
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://felipejoys.webnode.com

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por Da Galáxia Sex 13 Jul 2012, 15:10

Pra que usar isto em game maker sendo que ele ja tem um controle imbutido para sincronizar. Este tipo de formula é usada para controlar a velocidade do jogo em outros PCs que não o seu, ou seja, quando vc faz um jogo em C++ ou Java (que não tem nada disso pronto) a velocidade é em acordo ao clock do seu PC, se vc colocar +=2 apenas quer dizer que é mais rapdo que +=1 e mais lento que +=3, mas isto não é uma constante, a proporção vai variar de acordo com a velocidade de processamento de cada computador, por isso usamos controles para sincronizar a velocidade em um laço principal pois a velociade estara compativel a milissegundos, isto sim, uma constante no sentido que 1 milissegundo é 1 milissegundo aqui e em jupter. Quando fiz meu primeiro jogo em C++, não levei isto em consideração (não havia nem passado pela minha cabeça) e levei um susto ao executar em outro PC mais rapdo que o meu, o jogo ficou tão rapdo que era impraticavel, bati cabeça ate achar uma formula (podem existir varias formas de fazer) para sincronizar, e agora tranquilo.
Da Galáxia
Da Galáxia

Data de inscrição : 14/01/2010
Reputação : 1
Número de Mensagens : 348
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por Black Studio Sex 13 Jul 2012, 19:57

Parece que vocês dois não leram o tópico eh? Eu ja entendi como a formula funciona, porém ela não é muito eficiente, eu encontrei uma extensão que funciona (Eu acho) Porém não sei como usá-la, alguém pode me ajudar?
Black Studio
Black Studio

Games Ranking : Nota C

Notas recebidas : C + C
Data de inscrição : 19/10/2011
Reputação : 9
Número de Mensagens : 337
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por PedroX Sex 13 Jul 2012, 20:39

Eu fiz um código que funciona precisamente:
https://gmbr.forumeiros.com/t22885-delta-time#171688

Note que a primeira parte vai no Create e a segunda no Step.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por Black Studio Sex 13 Jul 2012, 20:58

Pedro, sem querer ser chato, mas esta extensão não funciona para o que eu quero? Ter FPS o máximo possível no jogo com o room_speed em 9999 (claro que isso depende do PC) sem com que o personagem mude sua velocidade sabe?

PS : Eu tentei usar sua fórmula, e a bolinha foi a 500KMpH... ou mais...

Até! flw
Black Studio
Black Studio

Games Ranking : Nota C

Notas recebidas : C + C
Data de inscrição : 19/10/2011
Reputação : 9
Número de Mensagens : 337
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por PedroX Sex 13 Jul 2012, 22:35

Funciona para o quer, já que o room_speed é 9999, ele vai automaticamente detectar. É só você tentar.

Editado

Exemplo:

Código:
contador = current_time;
velocidade = 5;
ideal = 9999/1000; // 9,999
--------------------------------------
contador = current_time - contador; //suponha que rode a 1000 fps, entao vai dar 1 ms

if keyboard_check(vk_right) x += (contador * ideal) * velocidade; //1 * 9,999 * 5 = 49,995

Se fosse rodar a 9999 fps, daria 1000*9,999*5 / 9999, ou seja, 5. Note que o outro foi 10 vezes mais rápido, isso porque supostamente rodaria 10 vezes mais lento.

Concluindo: o que você precisa fazer é dividir a velocidade por um valor, porque o meu código vai de acordo com o room_speed, que no caso seria grande.

Até mais!


Última edição por Pedrø em Sex 13 Jul 2012, 22:44, editado 1 vez(es)

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por Black Studio Sex 13 Jul 2012, 22:39

Só que tipo, caso o jogador queira ativar o VSync, o FPS vai mudar para a taxa de atualização do monitor dele, fazendo que não seja 9999, não vai bugar a fórmula desse jeito?
Black Studio
Black Studio

Games Ranking : Nota C

Notas recebidas : C + C
Data de inscrição : 19/10/2011
Reputação : 9
Número de Mensagens : 337
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por KinKing Sáb 14 Jul 2012, 00:14

Eu li, e minha intenção era indagar a respeito da sua intenção, que despertou minha curiosidade... Entende?
KinKing
KinKing

Data de inscrição : 29/05/2008
Reputação : 16
Número de Mensagens : 422
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://felipejoys.webnode.com

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por PedroX Sáb 14 Jul 2012, 01:14

Eu editei meu post, aqui.

Quanto ao monitor, geralmente eles têm uma taxa de 60 FPS. Pense nisso: mais do que isso é bobagem. Você coloca room_speed como 60 e pronto, o problema acaba.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por Black Studio Dom 15 Jul 2012, 14:40

Na verdade, está longe de ser bobagem, inclusive em jogos de tiro e corrida, eu ainda não consegui configurar seu código direito, acho que a melhor solução, é aquela extensão, porém eu não sei como usá-la, pois eu sou um nubão com extensões, porém o pior de tudo, é que ela não tem um exemplo, um gmk para eu poder estudar, pra ver como funciona, se alguém estiver disposto a fazer um exemplo pra mim, eu ficaria muito agradecido Happy

Até mais flw
Black Studio
Black Studio

Games Ranking : Nota C

Notas recebidas : C + C
Data de inscrição : 19/10/2011
Reputação : 9
Número de Mensagens : 337
Prêmios : Como funciona está formula Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Como funciona está formula Empty Re: Como funciona está formula

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos