Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML5][JS] Rożna prędkość gry
trollman
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 14.12.2012

Ostrzeżenie: (0%)
-----


Witam,
Mam problem, gdyż robie grę w html5 oraz javascript i płynność gry zalezy jakby od mocy komputera (z tego co zaobserwowałem)

Pętla gry wygląda tak:
  1. if (state)
  2. gLoop = setTimeout(GameLoop, 1000 / 60);
  3. };


i w GameLoop dziają różne akcje, jak nasłuchwianie klwiszy, rysowanie i renderowania grafiki itd...
Gdy grę uruchamiam na komputerze, chodzi płynniutko, ale gdy włącze ja (oczywiscie w tej samej przeglądarce) na starym laptopie gra chodzi jakby była na 10 fps'ach.

Da się temu jakoś zapobiec?

Ten post edytował trollman 9.12.2014, 13:29:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trollman
post
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 14.12.2012

Ostrzeżenie: (0%)
-----


OK, To całe GameLoop wygląda tak

  1. var GameLoop = function(){
  2. clear();
  3. DrawBackground();
  4. player.draw();
  5. startBackground();
  6.  
  7. if(player.isJumping) player.checkJump();
  8. if(player.isFalling) player.checkFall();
  9.  
  10. if (Key.isDown(Key.LEFT)) player.moveLeft();
  11. if (Key.isDown(Key.SPACE)) player.jump();
  12. if (Key.isDown(Key.RIGHT)) player.moveRight();
  13.  
  14. platforms.forEach(function(platform, index){
  15. if (platform.isMoving) {
  16. if (platform.x < 60) {
  17. platform.direction = 1;
  18. } else if (platform.x > width-80- platformWidth) {
  19. platform.direction = -1;
  20. }
  21. platform.x += platform.direction * (index / 2) * ~~(points / 100);
  22. }
  23. if (points > 2){
  24. platform.y += 1;
  25. if(platform.y > height){
  26. var type = ~~(Math.random() *5);
  27. if(type == 0)
  28. type = 1;
  29. else
  30. type = 0;
  31.  
  32. platforms[index] = new Platform((Math.random() * (width -140- platformWidth))+60, platform.y - height, type);
  33.  
  34. }
  35. }
  36. platform.draw();
  37. });
  38. checkCollision();
  39.  
  40. ctx.fillStyle = "Black";
  41. ctx.fillText("POINTS:" + points, 10, height-10);
  42.  
  43. if (state)
  44. {
  45. gLoop = setTimeout(GameLoop, 1000 / 60);
  46. }
  47.  
  48. };


Nasłuchiwanie jest powyżej, tutaj tylko wyłapuję co jest nacisniete.
Ogólnie gra może byc bardzo nawet niezoptymalizowana bo jest to moja pierwsza taka gra w js i w sumie bardziej sie ucze (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 15:36