Skocz do zawartości

[JS] Opóźnienie klawiszy


Rekomendowane odpowiedzi

Witam, mam taki kod JS ( Canvas ) :

var canvas = document.getElementById('canvas_1');

if (canvas.getContext) {

    var canvas = document.getElementById('canvas_1');
    if (canvas.getContext) {
    
        var c = canvas.getContext('2d');
        
        // Dane okna gry
        var gameWidth = 320;
        var gameHeight = 240;
        
        // Dane gracza
        var x = 2;
        var y = 2;
        var width = 20;
        var height = 20;
        var xSpeed = 0;
        var xSpeedMax = 10;
        
        // Obsługa klawiszy
        function doKeyDown(evt){
            switch (evt.keyCode) {
                case 37: // left
                    if (xSpeed > -xSpeedMax) xSpeed-= 2;
                break;
                case 39:  // right
                    if (xSpeed < xSpeedMax) xSpeed+= 2;
                break;
            }
        }
        
        // Odświeżane rysowanie
        function draw() { 
        
            // Zwiększanie bądź zmniejszanie prędkości na osi X
            if (xSpeed > 0) xSpeed--;
            if (xSpeed < 0) xSpeed++;
            
            // Dodawanie prędkości do położenia gracza na osi X
            x += xSpeed; 
            
            // Prosta grawitacja
            if( y < (gameHeight - height) ) {
                y++;
            }
            
            // Czyszczenie ekranu
            c.fillStyle = "white";
            c.fillRect(0,0,gameWidth,gameHeight);
            
            // Rysowanie gracza
            c.fillStyle = "black";
            c.fillRect(x,y,width,height);
            
            // Rysowanie obramowania
            c.strokeRect(0,0,gameWidth,gameHeight); // strokeRect(x,y,width,height) 
        }
        
        // Odświeżanie
        setInterval('draw()',30); 
    }
}

window.addEventListener('keydown',doKeyDown,true);

 

Wszystko działa ok, tylko że gracz nie chodzi płynnie przy ruchu w lewo i w prawo. Tutaj nie chodzi o kod, bo jak zrobiłem tak samo we Flashu to działało ok.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...