Witam mam kod na poruszanie się postaci, wygląda następująco:
const player = document.querySelector('.player');
//Sprawdzanie rotacji postaci
var rotation = 0;
//Ruchliwosc postaci
var distance = 30;
var distance2 = 20;
//Ładowanie strzału
var shotLoading = 0;
const move = (e) => {
switch(e.keyCode) {
case 65: //Strzałka w lewo
if (rotation == -90) {
player.style.left = player.offsetLeft - distance +'px';
break;
} else {
player.style.transform = "rotate(-90deg)";
rotation = -90;
break;
}
case 68: //Strzałka w prawo
if (rotation == 90) {
player.style.left = player.offsetLeft + distance2 +'px';
break;
} else {
player.style.transform = "rotate(90deg)";
rotation = 90;
break;
}
case 87: //Strzałka w górę
if (rotation == 0) {
player.style.top = player.offsetTop - distance +'px';
break;
} else {
player.style.transform = "rotate(0deg)";
rotation = 0;
break;
}
case 83: //Strzałka w dół
if (rotation == 180) {
player.style.top = player.offsetTop + distance2 +'px';
break;
} else {
player.style.transform = "rotate(180deg)";
rotation = 180;
break;
}
case 32: //Spacja
if (shotLoading == 0) {
shotLoading = 10;
break;
} else {
alert('noShot');
break;
}
}
}
window.addEventListener("keydown", move);
Cały kod działa poprawnie, gdy obiekt klasy "player" jest wczytywany za pomocą: <img class="player" src="img/tank.svg"> .
Natomiast, gdy chcę animować poszczególną sekcje obrazka svg (Dodaję cały kod svg do pliku html i nadaję mu klasę "player") wykonuje się tylko rotate, a przesuwanie się obiektu nie działa.
Proszę o pomoc.