1. Preciso de ajuda para medir o FPS de um script [RESOLVIDO]
Satan_666usa Kali
Post recolhido
Enviado em 01/03/2022 - 16:40h
Eu estou fazendo um game em shell script, ele não vai demorar muito pra estar acabado
mas eu queria implementar uma função que mede o FPS do jogo e exibe a informação no terminal
Não conseguimos carregar os anúncios.Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
2. Re: Precisso de ajuda para medir o FPS de um script
SamLusa XUbuntu
Post recolhido
Enviado em 01/03/2022 - 18:59h
O FPS é medido conforme a quantidade de updates executado por segundo.
Por exemplo:
Se tu tem um código onde ele desenha na tela e então espera com o sleep por 0.033 segundos, então, tu tem um FPS de 1 / 0.033 ou quase 30 frames por segundo.
0.033 = tempo em segundos
1 = quantidade mínima de frames desenhados em 1 segundo
Pode ser que esse valor varie conforme a frequencia do monitor, já que, precisaria sincronizar manualmente os updates com a frequencia do monitor.
Então se teu monitor tem taxa de updates igual a 60 Hz, será 60 updates por segundo que serão vistos na tela. Mas se teu jogo tem o FPS abaixo ou acima de 60Hz, somente 60 frames serão de fato vistos.
Pra calcular oFPS atual, é preciso saber qual foi o tempo no inicio do loop e o tempo no final do update.
Por exemplo em C com SDL2:
while (1) {
Uint32 tempo_inicial = SDL_GetTicks();//pega o tempo agora, tempo em milissegundos
//aqui vem a lógica do jogo
//depois da lógica, vem o controle de FPS
Uint32 tempo_decorrido = SDL_GetTicks() - tempo_inicial;
//agora verifica se está executando muito rápido o jogo
if (tempo_decorrido < 33) {
//como estamos aqui, é porque o jogo tá rodando muito rápido e vai ocorrer variação no FPS
//essa diferença é a que devemos esperar um pouco
Uint32 diff = 33 - tempo_decorrido;
//agora espera o tempo que faltou para ser 33 ms
SDL_Delay(diff);
}
else {
//faz esperar 1 milissegundo para a cota do processador (pra não executar com 100% de processamento)
SDL_Delay(1);
}
}
SDL_Delay é o mesmo que sleep em shell.
SDL_GetTicks é apenas um número que indica quanto tempo passou desde o inicio do programa, pode ser substituido por uma função ou comando que retorne a quantidade dde tempo em milissegundos que o programa está executando.
Ali onde tem o diff, para saber o FPS atual, basta fazer FPS = 1 / (tempo_decorrido / 1000.0), onde o FPS é uma variável numérica.
Esse é um controle simples de FPS.
3. Re: Precisso de ajuda para medir o FPS de um script
msoliverusa Debian
Post recolhido
Enviado em 02/03/2022 - 21:08h
Satan_666 escreveu:
Eu estou fazendo um game em shell script, ele não vai demorar muito pra estar acabado
mas eu queria implementar uma função que mede o FPS do jogo e exibe a informação no terminal
como eu poderia fazer isso??
Segue exemplo com seu 'personagem' de outro tópico...
Caminha da esquerda para a direita.
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________
4. Re: Precisso de ajuda para medir o FPS de um script [RESOLVIDO]
leoCCBusa Slackware
Post recolhido
Enviado em 15/05/2022 - 19:57h
depois manda o jogo aí pra gente ver!! Ou vai ser pra comercializar?
5. Re: Preciso de ajuda para medir o FPS de um script [RESOLVIDO]
Satan_666usa Kali
Post recolhido
Enviado em 16/05/2022 - 14:43h
Vai ser só um jogo normal em Shell script, eu vou disponibiliza-lo de graça no github
Obs: Já estou quase terminando ele, agora só falta as fases finais