Witam. Mam problem z poruszaniem się postaci do mojej gry. Przyciski reagują na dane zdarzenia ale postać pozostaje w miejscu nie wiem dlaczego. Oto kod odpowiedzialny za poruszanie, jeżeli ktoś zorientuje się o co chodzi bardzo proszę o pomoc
var isMoving, facing;
isMoving = false;
function keyDownHandler(event)
{
var keyPressed = String.fromCharCode(event.keyCode);
if (keyPressed === "W")
{
facing = "N";
isMoving = true;
}
else if (keyPressed === "D")
{
facing = "E";
isMoving = true;
}
else if (keyPressed === "S")
{
facing = "S";
isMoving = true;
}
else if (keyPressed === "A")
{
facing = "W";
isMoving = true;
}
}
function keyUpHandler(event)
{
var keyPressed = String.fromCharCode(event.keyCode);
if ((keyPressed === "W") || (keyPressed === "A") ||
(keyPressed === "S") || (keyPressed === "D"))
{
isMoving = false;
}
}
var charX, charY;
charX = 100; charY = 400;
var currX = 0;
//var currY = 0;
function update(c){
this.canvas = c;
//Clear Canvas
this.canvas.clearRect(0, 0, 60, 60);
this.rysuj = function(){
if (isMoving)
{
if (facing === "N")
{
charY -= 2;
}
else if (facing === "E")
{
charX += 2;
}
else if (facing === "S")
{
charY += 2;
}
else if (facing === "W")
{
charX -= 2;
}
currX += 60;
if (currX >= 300)
currX = 0;
this.canvas.drawImage(img, currX,0,60, 60, 0, 0, 60, 60);
};
};
};
oraz dodanie eventów :
document.addEventListener("keydown",keyDownHandler, false);
document.addEventListener("keyup",keyUpHandler, false);
Strasznie mi głupio, przez to testowanie cały czas kodu zapomniałem ustawić argumenty w drawImage. Korzystając z okazji mam pytanie. Czy lepiej jest wczytać nowy obrazek ze sprite'ów, czy utworzyć go poprzez transformacje istniejącego już obrazka(jak będzie wydajniej)? Chce zrobić aby dla postaci skierowanej w lewo/prawo były odpowiadające tym kierunkom obrazki