JavaScript
Насколько надо владеть JS чтобы начать писать игру змейку?
Владею базовыми знаниями JS + DOM. Было бы хорошо, если бы отвечали те, у кого уже имеется опыт написания змейки на JS
const canvas = document.getElementById("game");
const ctx = canvas.getContext("2d");
const ground = new Image();
ground.src = "img/ground.png";
const foodImg = new Image();
foodImg.src = "img/food.png";
let box = 32;
let score = 0;
let food = {
x: Math.floor((Math.random() * 17 + 1)) * box,
y: Math.floor((Math.random() * 15 + 3)) * box,
};
let snake = [];
snake[0] = {
x: 9 * box,
y: 10 * box
};
document.addEventListener("keydown", direction);
let dir;
function direction(event) {
if(event.keyCode == 37 && dir != "right")
dir = "left";
else if(event.keyCode == 38 && dir != "down")
dir = "up";
else if(event.keyCode == 39 && dir != "left")
dir = "right";
else if(event.keyCode == 40 && dir != "up")
dir = "down";
}
function eatTail(head, arr) {
for(let i = 0; i < arr.length; i++) {
if(head.x == arr[i].x && head.y == arr[i].y)
clearInterval(game);
}
}
function drawGame() {
ctx.drawImage(ground, 0, 0);
ctx.drawImage(foodImg, food.x, food.y);
for(let i = 0; i < snake.length; i++) {
ctx.fillStyle = i == 0 ? "green" : "red";
ctx.fillRect(snake[i].x, snake[i].y, box, box);
}
ctx.fillStyle = "white";
ctx.font = "50px Arial";
ctx.fillText(score, box * 2.5, box * 1.7);
let snakeX = snake[0].x;
let snakeY = snake[0].y;
if(snakeX == food.x && snakeY == food.y) {
score++;
food = {
x: Math.floor((Math.random() * 17 + 1)) * box,
y: Math.floor((Math.random() * 15 + 3)) * box,
};
} else {
snake.pop();
}
if(snakeX < box || snakeX > box * 17
|| snakeY < 3 * box || snakeY > box * 17)
clearInterval(game);
if(dir == "left") snakeX -= box;
if(dir == "right") snakeX += box;
if(dir == "up") snakeY -= box;
if(dir == "down") snakeY += box;
let newHead = {
x: snakeX,
y: snakeY
};
eatTail(newHead, snake);
snake.unshift(newHead);
}
let game = setInterval(drawGame, 100);
//
Игра на JavaScript
Думаю, твоего уровня как раз достаточно. С canvas заморачиваться не стоит, а вот сделать таблицу из небольших квадратных ячеек в качестве игрового поля - получится как раз классическая змейка, очень похожая на те, что делали на текстовых дисплеях.
а ты попробуй, если не осилишь, значит еще недостаточно
На 4 или 5.
чтобы начать писать можно вообще не владеть, а походу разобраться. так новые языки и учатся. Я cмогу написать ее на js, не владея сейчас js)
Талай Садыков
не владея JS на JS? где логика?
Змейку на JS, конечно, не писал, но многолетний опыт разработки, думаю, может восполнить этот недостаток.
Если владеешь основами программирования, то смело начинай писать змейку. К тому же, лучше использовать canvas вместо элементов DOM
Если владеешь основами программирования, то смело начинай писать змейку. К тому же, лучше использовать canvas вместо элементов DOM
Похожие вопросы
- Объясните кусок кода змейки на js
- Хочу учить js с нуля, но думаю html и css начать первым, так ли?
- Почему иногда в вакансиях пишут "знания JavaScript или JQuery"? По сути JQuery - лишь библиотека для JS.
- Помогите определиться с выбором нового языка (JS(TS) vs Java)
- Js фреймворки, что полезного можно для себя найти?
- В чем цель фреймворков js web?
- [HTML/CSS/JS] Как сохранять изменённые в .js данные оффлайн-сервера локально?
- Почему jQuery методы популярнее js методов при общении с ДоМ?
- ПОЧЕМУ JS ТАКОЙ НЕПОНЯТНЫЙ???
- вопрос по JS. " простой ()";