Solucionado (ver solução)
Solucionado
(ver solução)
15
respostas

Mover herói para um posição fixa

No curso foi mostrado que para mover o herói em uma posição fixa, basta mexermos no seu X ou Y, sendo assim, eu poderia move-lo sempre para a frente como feito no primeiro exemplo:

this.node.y += 1;

Certo ? Porém, como faço para ignorar o FPS nesses casos ? Pois meu note esta entre 5 e 12 de FPS, então a nav não pode rapidamente igual no exemplo dado.

Obs: Tentei multiplicar o 1 pelo dt mas ficou mais lento ainda kkk

15 respostas

Bom dia Matheus, a ideia é realmente multiplicar o a velocidade da nave pelo parâmetro "dt" do método update mesmo.

Ele ficou mais lento sim, pois agora a nave está se movendo a 1 pixel por segundo enquanto que antes ela estava se movendo a 1 pixel por frame, que no se caso ficava entre 5 e 12 pixels por segundo.

Isso aconteceu no vídeo onde eu expliquei o Delta time, na aula 3 do curso.

Você sabe por que está rodando tão devagar no seu note o jogo? O ideal era que o jogo rodasse a pelo menos 24 FPS, esse é o limite do que nosso olho aceita sem que o jogo pareça estar com lag.

Curiosidade: Os filmes costumam rodar a 24 FPS no cinema, alguns hoje em dia filmam a 48 FPS como o Hobbit.

Fala ai Ricardo, eu fiz exatamente como nas aulas , vou te mostrar o código:

update: function (dt) {
    this.node.y += 1000 * dt;
},

Então nesse caso, estou movendo 1000 px por segundos, certo ?

Sobre o FPS baixo, não faço idéia, eu testei pelo simulador, ai foi de boa, ficou bem melhor, bem mais natural a movimentação da nave, não deu aquelas travadas, o problema é quando rodo pelo brower.

É bem estranho pois o note é bom, é um mac com: i7, 8gb de ram com SSD e tals.

solução!

Exato, vc está movendo ele 1000 px por segundo no eixo Y.

Sobre o FPS, qual browser vc ta usando? tenta abrir o profile do browser e ver se o problema é no consumo de RAM ou no processamento mesmo.

As veze pode ser inclusive o fato do jogo não estar utilizando WebGL pra renderizar o jogo. No canto superior esquerdo o terceiro item é um menu dropdown com duas opções WebGL e Canvas, qual delas ele está exibindo pra vc?

Estou usando o chrome, esta mostrando WebGL.

Sobre o processo, esta consumando cerca de 170mg de RAM, porém a CPU esta alto, esta consumindo cerca de 180.

O jogo já começa lento? Quantos objetos você tem na cena? Qual chamada de método o profiler mostra que está travando o processamento?

Sim, o jogo já começa lento, vou lhe mandar um print:

Game

Sobre o profiler, não sei ver qual o processa esta travando kkk

Será que pode ser o meu png muito pesado ou com muitos detalhes ?

Não achei a imagem da nave usada no curso para baixar, se puder me mandar o link, eu baixo e testo com ela.

Qual o tamanho da sua imagem, em pixels e em MB?

Tamanho em px 383x381, em arquivo físico 8kb, mas quando eu adiciono ela na cena, eu mudo o tamanho para 75x75(Não sei se tem diferença)

Não é esse o problema não, o arquivo está pequeno o suficiente. Teria que ver no profiler mesmo o que está acontecendo.

Como faço isso ?

Você tem que abrir o inspetor do chrome, e ir na aba "Performance". Ele vai pedir pra você "gravar" o jogo/site executando por um tempo e depois ele te exibe uma time line onde você pode ver o que aconteceu no tempo que ele gravou.

Tem esse tutorial do google que mostra um pouco de como essa ferramenta funciona. https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/timeline-tool?hl=pt-br

Se achar o local onde ele ta demorando pra processar posta aqui um print.

Fala ai Ricardo, achei o problema(vou procurar a solução), o problema é porque meu Chrome não tem suporte a WebGL, qualquer jogo que eu abro com WebGL ele não roda, tenho que abrir pelo Firefox.

Acabei de rodar o jogo no Firefox e esta perfeitinho, com FPS total kkk, igual no simulador.

Preciso ver porque o Chrome esta assim, tem alguma idéia ?

Atualizei o navegador, problema resolvido \o/.

Sem problemas, eu imaginei que pudesse ser isso. Mas como o jogo tava mostrando WebGl no painel achei que ele tivesse rodando em WebGL.

Que bom que conseguiu solucionar.

Sem problemas, ainda teram muitas dúvidas para me ajudar kkkkk

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software