Conectar-se

Esqueci minha senha

Últimos assuntos
» Novo endereço da XCreator
Qua 16 Mar 2011, 08:49 por vinians

» C++? ajuda
Qui 17 Fev 2011, 16:42 por Henrique_GJ

» dúvida em centralizar arma e player
Dom 30 Jan 2011, 17:08 por AndersonXD

» GO linguagem de programação da Google !!
Qui 27 Jan 2011, 21:04 por vinians

» [Duvida]esqueci o código pra mudar o tamanho da room
Qui 13 Jan 2011, 15:12 por mystery_boy_maker

» show_message_ext duvida
Qua 22 Dez 2010, 21:36 por mystery_boy_maker

» Testes com C & Allegro
Seg 13 Dez 2010, 14:31 por vinians

» FreeBasic - Código completo Snake
Seg 13 Dez 2010, 11:13 por tblima123

» Me apresentando...
Sab 11 Dez 2010, 22:26 por vinians

» URL Reverse
Sab 11 Dez 2010, 22:23 por vinians

Parceiros
Seja nosso parceiro, adicione nosso button em seu portal!


• • •

• • •

• • •
[parceiro 3]

FreeBasic - FPS

Ir em baixo

FreeBasic - FPS

Mensagem por tblima123 em Seg 22 Nov 2010, 19:35

Título: Como colocar um medidor de FPS em seu jogo
Ferramenta: FreeBasic
Nível: Facil

FPS é a sigla de Frames per Seconds, ou seja, quadros por segundo; na verdade ele determina o numero de quadros que foram apresentados a cada segundo do seu jogo, saber o FPS de um jogo e util para monitorar a velocidade em que ele é executado.

É mais facil do que parece calcular o FPS.

Coleque esse código:
Código:

#Include "fbgfx.bi"
Using FB


Screenres 640, 480, 32, 2, 0
Screenset (1, 0)
Creio que você saiba oque esse código faz, se não sabe, leia FREE BASIC PARTE III - GRÁFICOS

Prosseguindo, vamos criar três variaveis:
Código:

Dim As Double tempo = Timer()
Dim As Short FPS = 0
Dim As Short c_FPS = 0

Timer() é uma função que retorna quantos segundos faz que o computador está ligado.

Na variavel tempo iremos armazenar em segundos o ultimo instante em que foi medido o FPS;
Em FPS iremos armazenar o valor do FPS para imprimir;
Em c_FPS (contador_FPS) iremos adicionar 1 a cada quadro do jogo, para quando terminar o tempo de um segundo sabermos quantos quadros se passaram naquele segundo.

Digite:
Código:

While Not Multikey(SC_ESCAPE)
    Cls()

  'O restante do código será colocado aqui

    Screencopy()
    Sleep(30, 1)
   
Wend
Obs.: para entender melhor esse código leia:02 - Aulas do Tiago - Fazendo uma Bolinha se Mover junto ao tutorial do vinians citado anteriormente.

Bem, agora vem a lógica do negócio, vamos comessar pelo fácil, digite no local indicado do código anterior isso:
Código:

c_FPS += 1
Print FPS

Bem, em c_FPS, a cada quadro do jogo será adicionado 1 a essa variavel para repesentar o quadro que foi mostrado naquele momento;
Print FPS é para mostrar o numero de quadros por segundo.

Se você executar nosso programa ele já rodará sem dar erro, porem só mostrará um zero sem graça Crying or Very sad
Vamos arrumar isso?

Agora nós vamos fazer o seguinte, criaremos uma condição que verificará se já se passou um segundo desde a ultima analise de quantos quadros foram exibidos por segundo até agora(não digite ainda):
Código:

If ((Timer - tempo) >= 1.0) Then

End If
A lógica é simples, tempo atual menos tempo da ultima verificação igual a tempo que se passou desde a ultima verificação, se isso for maior que 1 (um segundo) então:
Código:

FPS = c_FPS
c_FPS = 0
tempo = Timer

FPS será igual ao numero de quadros que acumulamos em c_FPS;
Zeramos o contador c_FPS pra poder comessar a contar de novo;
armazenamos em tempo o momento dessa verificação.

O código todo fica assim:
Código:

#Include "fbgfx.bi"
Using FB

Screenres 640, 480, 32, 2, 0
Screenset (1, 0)
Dim As Double tempo = Timer()
Dim As Short FPS = 0
Dim As Short c_FPS = 0 


While Not Multikey(SC_ESCAPE)
    Cls()

    c_FPS += 1
    Print FPS
   
    If ((Timer - tempo) >= 1.0) Then
        FPS = c_FPS
        c_FPS = 0
        tempo = Timer
    End If
   
    Screencopy()

 
Wend

Só use caso você tenha certeza de ter intendido, tá? Smile


Espero que gostem, e tenho quase certeza que você usará.

E qualquer duvida é só postar ai.


Última edição por tblima123 em Ter 30 Nov 2010, 19:18, editado 2 vez(es)
avatar
tblima123
Ocasional

Mensagens : 54
Data de inscrição : 06/11/2009

Voltar ao Topo Ir em baixo

Re: FreeBasic - FPS

Mensagem por vinians em Seg 29 Nov 2010, 09:31

A ae amigão tudo blz?
Ficou muito bom sua explicação sobre FPS. É muito importante quando estamos criando um jogo monitorar as quantas andam nossa velocidade de processamento e esse seu código funciona direitinho. Inclusive, pra quem usa outra linguagem como C, Java, etc pode aplicar essa idéia que funciona tranquilamente bastando apenas substituir a função timer() por uma semelhante na linguagem em questão.
Off. Desculpe pela ausência prolongada mais estou com problemas sérios de internet que espero poder resolver logo! T+ !

_________________
we love to make games!
avatar
vinians
Editor

Masculino
Mensagens : 85
Data de inscrição : 24/08/2009
Localização : Rio de Janeiro

http://www.xcreator.com.br

Voltar ao Topo Ir em baixo

Re: FreeBasic - FPS

Mensagem por Convidad em Ter 30 Nov 2010, 12:52

Numa tela com somente esse código postado bateu 300 frames aqui... seria esse um valor meio padrão ou mesmo sem nada como nesse caso dá pra ter uma variação considerável dependendo da máquina?

Off. Desculpe pela ausência prolongada mais estou com problemas sérios de internet que espero poder resolver logo! T+ !
Que coisa ein fio... na última vez que nos falamos vc tava contando que já tinha colocado o Velox na nova casa >.<

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: FreeBasic - FPS

Mensagem por vinians em Ter 30 Nov 2010, 13:25

fabio escreveu:Numa tela com somente esse código postado bateu 300 frames aqui... seria esse um valor meio padrão ou mesmo sem nada como nesse caso dá pra ter uma variação considerável dependendo da máquina?

Off. Desculpe pela ausência prolongada mais estou com problemas sérios de internet que espero poder resolver logo! T+ !
Que coisa ein fio... na última vez que nos falamos vc tava contando que já tinha colocado o Velox na nova casa >.<
E ae rapaiz blz !!!!
Pois é eu coloquei o velox mesmo, mas contudo o mesmo se recusa a conectar na hora que eu preciso e so conecta quando quer. Entrei em contato com a dita cuja OI que esta providenciando o "reparo" da coisa. As vezes ele esta conectando antes das 3 da matina, nesse caso eu até entro. Enquanto isso vou jogando GOW 3, que por sinal é um dos melhores jogos que ja joguei. (pior que cheguei ao final, poderia ser mais longo).

_________________
we love to make games!
avatar
vinians
Editor

Masculino
Mensagens : 85
Data de inscrição : 24/08/2009
Localização : Rio de Janeiro

http://www.xcreator.com.br

Voltar ao Topo Ir em baixo

Re: FreeBasic - FPS

Mensagem por tblima123 em Ter 30 Nov 2010, 17:37

Aqui em casa eu uso velox rotiada pra 3 casas, portanto o rotiador fica conectado 24hs com a velox, então eu não tenho seu problema, porem teve uma época que quase toda semana dava problema, depois que a oi alterou umas paradas muito loucas no covil deles aqui da minha city não deu mais problemas Laughing

Mudando de assunto...

No meu computador o FPS fica por volta de 470, mas atingiu 530 ainda.

fiquei triste quando repeti o processo no Game Maker e o GM atingiu mais de 700 ficando em 650 +ou-, o Game Maker tem fama de lento, o Free Basic é oque então?
avatar
tblima123
Ocasional

Mensagens : 54
Data de inscrição : 06/11/2009

Voltar ao Topo Ir em baixo

Re: FreeBasic - FPS

Mensagem por Convidad em Ter 30 Nov 2010, 22:56

No FB aqui 300 foi meio que uma média pois as vezes dá uns picos de 400 e pouco e as vezes tmb cai pra menos de 300.
Já no GM foi igual o seu, de 650 a mais de 700, mas variando bem menos a taxa que o FB.
E ae rapaiz blz !!!!
Pois é eu coloquei o velox mesmo, mas contudo o mesmo se recusa a conectar na hora que eu preciso e so conecta quando quer. Entrei em contato com a dita cuja OI que esta providenciando o "reparo" da coisa.
Hmm, eu conheço essa história de providenciar reparo... tão pensando no que eles podem inventar pra enrolar enquanto o problema não se resolve sozinho ou o cliente desiste hahaha
E o lance do 3G? Na outra casa lembro que vc disse que não prestou, mas quem sabe nessa agora dá pra quebrar um galho!

flw

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: FreeBasic - FPS

Mensagem por vinians em Qua 01 Dez 2010, 10:11

A ae galera blz?

Aqui em casa eu uso velox rotiada pra 3 casas, portanto o rotiador fica conectado 24hs com a velox, então eu não tenho seu problema, porem teve uma época que quase toda semana dava problema, depois que a oi alterou umas paradas muito loucas no covil deles aqui da minha city não deu mais problemas
La em casa funciona assim. EU tenho um router ADSL que faz a conexão automaticamente, e depois na saida do router eu liguei um outro router Wireless que distribui a conexão para toda casa, pois uso o PS3 na internet tambem. Só que nesta casa que eu mudei, tem veloz mas a conexão está instável, ainda não sei como resolver pois o pessoal do atendimento é muito ruim. Se não der vou colocar outra solução, mas prefiro o Velox.


Hmm, eu conheço essa história de providenciar reparo... tão pensando no que eles podem inventar pra enrolar enquanto o problema não se resolve sozinho ou o cliente desiste hahaha
E o lance do 3G? Na outra casa lembro que vc disse que não prestou, mas quem sabe nessa agora dá pra quebrar um galho!
Pis é... o pessoal é fraquim fraquim... quanto ao 3G (voce lembrou O.o) talvez funfe sim pois o sinal la está muito bom estou entre a Claro e a Vivo pois a OI ta fox!


fiquei triste quando repeti o processo no Game Maker e o GM atingiu mais de 700 ficando em 650 +ou-, o Game Maker tem fama de lento, o Free Basic é oque então?
Verifique direitim como está este teste no GM se ele esta realmente correto, pois o método de distribuição de elementos de um jogo no GM é totalmente diferente, ou seja o loop principal e diferente.
Vou tentar fazer aqui como o Fabio disse em outro post com centenas de "objetos" no DevC e no FreeBasic dai além de ser uma engine poderemos usar para testar a velocidade.
Flws

_________________
we love to make games!
avatar
vinians
Editor

Masculino
Mensagens : 85
Data de inscrição : 24/08/2009
Localização : Rio de Janeiro

http://www.xcreator.com.br

Voltar ao Topo Ir em baixo

Re: FreeBasic - FPS

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum