Ich versuche, meinen Charakter (gespeichert unter der Variablen 'Player' und es ist absolut positioniert.), Wenn ich Drücken Sie die Tasten "W", "A", "S" und "D". Aber ich kann es nicht bewegen. Jede Hilfe wäre großartig.Javascript auf Tastendruck: player.style.left + = 10, kann nicht herausfinden, warum das nicht funktioniert
let player;
let bod;
player_one_horizontal_position;
window.onload = function(){
bod = document.getElementsByTagName('body');
player = document.getElementById('player');
player_one_horizontal_position = 10;
bod.addEventListener('keydown',function(e){
if(e.code === 'KeyA'){
player_one_horizontal_position += 10;
check_position(e.code);
};
}); //end of eventListener
}//end of window.onload function
function check_position(code){
console.log(code === 'KeyA'); /*does evaluate to true so the problem must be the next line */
player.style.left = player_one_horizontal_position;
}
Ich habe eine ähnliche Sache mit JQuery getan früher in der Woche, so bin ich nicht sicher, warum dies nicht mit Vanille JS arbeitet
HTML:
<!DOCTYPE html>
<html>
<head>
<!-- Main stylesheets -->
<link rel="stylesheet" href="style.css"/>
<!-- Player stylesheets -->
<link rel="stylesheet" href="player_one.css"/>
<link rel="stylesheet" href="player_two.css"/>
<script src="script.js"></script>
</head>
<body>
<div id="wrapper">
<div id="player" class="stance_one"></div>
<div id="player2" class="first_stance"></div>
</div>
</body>
</html>
CSS für ein Spieler:
#player{
background-image: url('images/sprite.png');
position: absolute;
z-index: 1;
height: 142px;
left: 10;
}
.stance_one{
width: 8%;
background-position: 0% 0%;
}
'left' eine Einheit haben muss. – SLaks
Könnten Sie mehr Kontext bereitstellen? (zB HTML, CSS) – Trevor
@Trevor ja, relevante html und css sind jetzt enthalten –