проблемы с написанием batle city на js
let canvas = document.getElementById('canvas');
let ctx = canvas.getContext('2d');
let tank = new Image();
tank.src = 'src/tank_front.png'
let tank_position = {
x: canvas.width / 2,
y: canvas.height / 2
}
let dir = false;
document.addEventListener('keydown', direction);
function direction(event) {
if (event.keyCode == 37)
dir = "left";
else if (event.keyCode == 38)
dir = "up";
else if (event.keyCode == 39)
dir = "right";
else if (event.keyCode == 40)
dir = "down";
}
function Draw() {
if (dir = 'up') tank_position.y++;
else if (dir = 'down') tank_position.y--;
else if (dir = 'right') tank_position.x++;
else if (dir = 'left') tank_position.x--;
ctx.drawImage(tank, tank_position.x, tank_position.y);
}
setInterval(Draw, 10);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<canvas id="canvas" width="500" height="500"></canvas>
<script src="script.js"></script>
</body>
</html>
Ответы (1 шт):
Автор решения: Oliver Patterson
→ Ссылка
Вы используете в условии не проверку на значение, а присваивание переменной значения.
function Draw() {
if (dir == 'up') tank_position.y++;
else if (dir == 'down') tank_position.y--;
else if (dir == 'right') tank_position.x++;
else if (dir == 'left') tank_position.x--;
ctx.drawImage(tank, tank_position.x, tank_position.y);
}