Я новичок в JavaScript и пытаюсь создать игру, подобную этой, в javascript: http://www.lostdecadegames.com/how-to-make-a-simple-html5-canvas-game/. За исключением того, что мне не разрешено использовать элемент canvas, поэтому код, который я использую, не кажетсяработать.Проблема, с которой я столкнулся, заключается в том, чтобы заставить мой элемент мыши / пищи перемещаться в случайное новое положение, когда элемент змея / ползунок сталкивается с элементом мыши / пищи.Я также обычно не уверен, работает ли моя функция update (), а если нет, то я не знаю почему.
Я пробовал много разных способов заставить код работать правильно;размещение функции обновления в разных местах, таких как окно загрузки, в каждой функции стрелок и т. д. Я попытался найти много других кодов, но все, что я могу найти, - это люди, которые используют элемент canvas для создания своей игры.
var snake = null;
var slither = document.querySelector("#snake > .snake");
var mouse = document.querySelector("#food > .mouse");
var body = document.getElementById("grass");
x = body.width / 2;
y = body.height / 2;
function init() {
snake = document.getElementById("snake");
snake.style.position = 'relative';
snake.style.left = '0px';
snake.style.top = '0px';
}
function getKeyAndMove(e) {
var key_code = e.which || e.keyCode;
switch (key_code) {
case 37: //left arrow key
moveLeft();
break;
case 38: //Up arrow key
moveUp();
break;
case 39: //right arrow key
moveRight();
break;
case 40: //down arrow key
moveDown();
break;
}
}
function moveLeft() {
snake.style.left = parseInt(snake.style.left) - 7 + 'px';
update();
}
function moveUp() {
snake.style.top = parseInt(snake.style.top) - 7 + 'px';
update();
}
function moveRight() {
snake.style.left = parseInt(snake.style.left) + 7 + 'px';
update();
}
function moveDown() {
snake.style.top = parseInt(snake.style.top) + 7 + 'px';
update();
}
window.onload = init;
var update = () => {
if (
mouse.x === slither.x || mouse.y === slither.y || mouse.y === slither.y && mouse.x === slither.x
) {
mouse.x = Math.floor((Math.random() * 30) + 1);
mouse.y = Math.floor((Math.random() * 30) + 1);
}
};
<body id="grass" onkeydown='getKeyAndMove(event)'>
<div id="snake">
<img class="snake" src="img/snek.png" alt="snake">
</div>
<div id="food">
<img class="mouse" src="img/mouse.png" alt="mouse">
</div>
<script type="text/javascript" src="myscript.js"></script>
</body>
Мне нужны ответы только на JavaScript, пожалуйста, потому что я еще не изучил JQuery и все такое.Я думаю, что могут быть проблемы с моими значениями x и y, но я не знаю, как установить положение мыши для перемещения относительно окна, как это делается в примерах элемента canvas.Я просто запутался, пожалуйста, помогите.