Игра Змейка на чистом JavaScript и HTML5 за 45 минут!

  Переглядів 153,836

Гоша Дударь

Гоша Дударь

4 роки тому

Представляю вам большой урок, в ходе которого мы создадим полноценную красивую игру на чистом JavaScript и HTML5. Игра будет копировать классическую игру "Змейка", при этом в конце урока мы загрузим игру на сервер чтобы все смогли поиграть в игру.
✔ Хостинг можно получить в подарок, но количество активаций ограничено! Используйте промокод GOSHA_HOST. Промокод действителен лишь для тарифа Host-0 и доступен только для первых 30 счастливчиков!
1) Текстовый редактор: atom.io/
2) Подборк иконок: www.iconfinder.com/
3) Хостинг компания: bit.ly/2XCmmJL
4) Ссылка на статью на сайте itProger: itproger.com/news/198
5) Перевод видео: • Create Snake Game Usin...
✔ Сообщество программистов: itproger.com/
✔ -------------
Вступай в группу Вк - prog_life 🚀
Группа FaceBook - goo.gl/XW0aaP
Инстаграм itProger: / itproger_official
Instagram: / gosha_dudar
Telegram: t.me/itProger_official
Twitter - / goshadudar
- Уроки от #GoshaDudar 👨🏼‍💻
- Все уроки по хештегу #goshaLessons

КОМЕНТАРІ: 292
@volt3396
@volt3396 4 роки тому
Гоша, пожалуйста, по больше уроков, по созданию игр. Здоровья тебе :)
@zahaietskyi
@zahaietskyi 4 роки тому
Годнота!!!💪💪💪
@ege8127
@ege8127 3 роки тому
Спасибо огромное!!! От души!!!
@reallygood7580
@reallygood7580 3 роки тому
3:37 - Я сразу понял, что наконец-то нашёл того, кто хотябы ЗНАЕТ о ES6!
@mooves3249
@mooves3249 2 роки тому
Я тоже сколько не смотрел видосов, все переменные создают через var про который я уже даже забыл
@lyonya7025
@lyonya7025 4 роки тому
Чувак, ты самый лучший! Спсибо тебе за все твои уроки! Желаю как можно больше успехов в творчестве!!
@ivanovserg8795
@ivanovserg8795 2 роки тому
Хороший урок, есть чуток замечаний: 1) Код загроможден переменной bох, надо оставит её только для отрисовки в пикселах, а все сравнения и расчеты по координатам вести в количестве самих ячеек, а не в пикселах; 2) Есть объект food, тогда и картинку еды перенести надо в этот объект 3) Есть объект snake, тогда и направление dir перенести в этот объект 4) Есть голова змеи head, snakeX и snakeY - тогда их тоже вложить в объект snake P.S. По коду "размазаны" переменные, которые через 2 недели не вспомнишь что они делают - их надо логически вкладывать в объекты
@user-ch1uk1bb7g
@user-ch1uk1bb7g Рік тому
код не работает
@timagoldm
@timagoldm 9 місяців тому
что тебе всё не нравится?! по твоему надо писать место бокс везде 32? умник, нашелся! я не хуже тебя в программировании разбираюсь!
@ivanovserg8795
@ivanovserg8795 9 місяців тому
@@timagoldm Внимательно перечитай мой пункт 1. Переменная box (а еще лучше сделать её const) нужна только внутри функции отрисовки drawGame(). Вот и всё.
@timagoldm
@timagoldm 9 місяців тому
😒
@daffeboy
@daffeboy 4 роки тому
Спасибо, всё робит!
@thedragon1328
@thedragon1328 3 роки тому
Спасибо за видео!
@MrSam-mh7ec
@MrSam-mh7ec 4 роки тому
Гоша ты лучший. Удачи тебе
@atsuko_shittl.j
@atsuko_shittl.j 3 роки тому
Спасибо за видео, я теперь знаю как запустить свои файлы на сервер) И узнала многое что о программировании)
@user-hu1mk4tw2q
@user-hu1mk4tw2q 2 роки тому
Очень круто!
@NeedForHeavyMetal
@NeedForHeavyMetal 2 роки тому
спасибо!) наглядно)
@Hande_hoch
@Hande_hoch 3 роки тому
один из очень немногих, на кого я езьже отдущи подписался, отдущи поставил лайк, отдущи оставляю коммент!
@kukusikibabasikitv
@kukusikibabasikitv 3 роки тому
Жалко, что у вас так мало видео про игры на джаваскрипт. Спасибо !!
@kulagintimofei7689
@kulagintimofei7689 2 роки тому
Да
@gennadius909
@gennadius909 4 роки тому
Спасибо за урок
@user-hm2mo9jt7b
@user-hm2mo9jt7b 2 роки тому
Спасибо!
@ganjackal
@ganjackal 2 роки тому
Супер🤝🏆слушай топчик еще бы game over по соли экрана это реально не подскажешь как🤔😆 Короч я решил заняться плотно веб разработкой и тут столкнулся с js пока не платно занимаюсь ! Есть советик !? С чего лучше начинать html и css знаю не так хорошо но знаю но говорят в наше время js всем глава без него ни куда ! Что скажешь!?
@savelpetoyan9853
@savelpetoyan9853 4 роки тому
Круто
@mrak3059
@mrak3059 4 роки тому
ты лучший)
@progi99
@progi99 6 місяців тому
спасибо за урок, было бы интересно как еще регулировать скорость змейки
@KonamiMaster
@KonamiMaster 3 роки тому
Спасибо за инфу
@joefast505
@joefast505 4 роки тому
Не до смотрел но все равно ТОП! Спасибо за видео :D
@user-rz8dd1bp1i
@user-rz8dd1bp1i 2 роки тому
Крассава бро)
@user-pc4qr6oe8k
@user-pc4qr6oe8k 4 роки тому
поражаюсь твоему трудолюбию
@dashkin-dima
@dashkin-dima 4 роки тому
Да капец как сложно брать материал с запада
@Evoleo
@Evoleo 4 роки тому
Он просто украл видео у зарубежного ютубера ukposts.info/have/v-deo/cYSUiWh6aHdypKs.html
@11-april
@11-april 4 роки тому
Не хочу выпендриваться, я новичок в этом деле, но я бы создал функцию, которая каждый рандомно генерирует еду, типа function createfood() {тут прописать рандомное появление еды} А переменную food просто объявить, затем вызвать эту функцию и каждый раз вызывать функция, когда змея проглатывает пищу) Спасибо за урок)
@evgeniiAn
@evgeniiAn 3 роки тому
зачем плодить новые сущности если все решается в пару строк кода? и да, не выпендривайся)
@irinax5392
@irinax5392 4 роки тому
Привет, в canvas остаются следы предыдущего местоположения змейки и кажется что ты рисуешь ею на поле. Такой же баг повторяется и с score. Цифра не обновляется а накладывается на предыдущее т.е. на 0 рисуется единичка и тд. Решила проблему добавив ctx.clearRect(0, 0, 609, 609); в самое начало функции drawGame(). Может кому понадобится.
@kostyaryazanov9685
@kostyaryazanov9685 2 роки тому
В процессе создания столкнулся с такой-же проблемой. Оказалось, что я написал pop, вместо pop(). Поэтому элементы массива не удалялись, а оставались на месте, что и кажется, как закрашивание
@user-nd7fq9ys8p
@user-nd7fq9ys8p 4 роки тому
Неплохо
@VIJana79
@VIJana79 3 роки тому
А почему Гошу критикуют на других каналах? Хорошо он рассказывает, всё понятно. Конечно для понимания база какая-то нужна, без неё никуда. А так всё норм, всё подробно, чего писать, куда вставлять, почему такое действие.
@user-nu9rk7bl2w
@user-nu9rk7bl2w 4 роки тому
Игра на JavaScript удалась! Спасибо!
@iAmSvyat
@iAmSvyat 4 роки тому
Подскажите насчет ошибки. При выполнении интервала на 11:11 в консоли выдает "Uncaught TypeError: Cannot read property 'drawImage' of null at drawGame"
@daniyarkayir
@daniyarkayir 4 роки тому
вы может быть написали const ctx вместе из за этого и ошибка примерно вот так вот constctx = canvas.getContext("2d");
@maxedits7064
@maxedits7064 4 роки тому
Лайк, всё круто и понятно, я пошёл делать игру)) Единственное чего мне не понятно и хотелось бы понять: за что отвечают meta у тебя в html? их там три
@chelobas14
@chelobas14 3 роки тому
Это стандартная разметка, её создаёт сама прога при создании файла. Она не нужна
@munutd9857
@munutd9857 2 роки тому
👍👍👍
@user-lu3bs7ny9f
@user-lu3bs7ny9f 3 роки тому
Подскажите,как привязать звуки к клавишам,типо когда змея умирает,когда ест и двигается
@GANGST1ER
@GANGST1ER 3 роки тому
Очень долго делал, но всё таки переписал эту же игру на Python в Tk+Canvas) Проблема была в зацикливании движения змейки. root.after(150, func) помогло.
@kain5731
@kain5731 Рік тому
Привет, хочу спросить у тебя если не сложно) я хочу научиться фронтент разработке и немного бэкенда, для этого нужен ПК или ноутбук, хотел бы узнать что из этого лучше ? И на сколько мощными они должны быть?
@user-si1fw9tr1z
@user-si1fw9tr1z Рік тому
@@kain5731 если хочешь учиться то тебе хватит самого обычного пк или ноутбука что удобнее тебе будет, мощностью не имеет значения, даже на самом простом пк можно открыть редактор кода и видео по которым будешь учиться
@lackevil3730
@lackevil3730 4 роки тому
Больше JavaScript плизз
@vladnotvlad1228
@vladnotvlad1228 4 роки тому
Бро, где ты был раньше?)
@alex57767
@alex57767 4 роки тому
Для полного счастья стоит дописать, чтобы координаты спауна новой еды не могли совпасть с одной из координат самой змейки
@user-vi3ur8bw8k
@user-vi3ur8bw8k 4 роки тому
Как это сделать?
@RestPRODev
@RestPRODev 4 роки тому
@@user-vi3ur8bw8k Изи
@Evoleo
@Evoleo 4 роки тому
@@user-vi3ur8bw8k просто заспавнить заново если координаты внутри змейки и так пока не заспавнится нормально
@user-ol7fc8ls7e
@user-ol7fc8ls7e 2 роки тому
Всё прекрасно! Получилось! Но есть один вопрос - зачем исползовать переменную let, если можно использовать переменную var? тоже и с const?(Я не причисляю твои дествия к ошибке, а лишь спрашиваю)
@jilka3232
@jilka3232 2 роки тому
Переменная var устарела, а переменная let более современная
@user-ol7fc8ls7e
@user-ol7fc8ls7e Рік тому
@@jilka3232 Спасибо, теперь попробую чаще использовать переменную let 😄
@user-ek4zd1vp2e
@user-ek4zd1vp2e Рік тому
@@user-ol7fc8ls7e в области видимости дело. если сначала вызвать переменную заданную при помощи var а потом определить ее,то оно даст это сделать и ты получишь undefined. С let такая шняга работать не будет. тебе покажет ошибку. Как то так. Поэтому желательно использовать let. А если уверен что изменять переменную не будешь то делай const. Я обычно const для стрелочных функций использую.
@utlookworld5784
@utlookworld5784 3 роки тому
Игра - класс! А как сделать несколько уровней?
@slava_tfdf
@slava_tfdf Рік тому
Приветствую, насколько сильно нужно будет допилить игру, чтобы была возможность у пользователя сохранить фи и почту, чтобы сохранить/вывести таблицу с результатами?
@mr_pilka
@mr_pilka Рік тому
очень сильно
@vilgo3927
@vilgo3927 3 роки тому
из за блочной видемости dir должен выдавать undefined, обьясните как это работает
@durkaRealLol
@durkaRealLol 2 роки тому
что делать, ошибка game.js:48 Uncaught DOMException: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' state. at drawGame (
@georgbruzgaloff4127
@georgbruzgaloff4127 3 роки тому
Жорик, привееееет! Почему про игры перестал выкладывать уроки?
@innagencer8731
@innagencer8731 2 роки тому
класс!!! спасибо!!! вопрос к знающим, как уменьшить скорость движения змейки?
@ivanovserg8795
@ivanovserg8795 2 роки тому
В строке let game = SetInterval ( drawGame, 100 ); надо увеличить интервал с 100, например до 200 (т.е. заменить 100 на 200). Если надо еще медленнее - то ставим 300 вместо 100
@innagencer8731
@innagencer8731 2 роки тому
@@ivanovserg8795 Спасибо БОЛЬШОЕ!!!!!!!!!!!!!!!!!!!!!
@angrycoder18
@angrycoder18 4 роки тому
в смысле переменные же в javascript объявляются через var или из-за canvas через let?или это просто не 'use strict'
@user-ez9zi2ww6x
@user-ez9zi2ww6x 4 роки тому
Это относительно новый стандарт, var уже не используется
@user-xq3hx1uz1r
@user-xq3hx1uz1r 4 роки тому
Это Es6. Теперь let это стандарт
@TtTalkUA
@TtTalkUA 4 роки тому
погугли различия между var let и const
@iGespo
@iGespo 4 роки тому
Почитай разницу между var и let learn.javascript.ru/let-const
@igixprffikiberg2636
@igixprffikiberg2636 3 роки тому
Привет Георгий я писал игру я смотрел все твои уроки по Js и я решил посмотреть это видео в коде у меня показывает что все правильно но когда я зашел в консоль у меня выдало ошибку почему?
@RestPRODev
@RestPRODev 4 роки тому
Зашёл тупо посмотреть как создать игру ради прикола В итоге узнал для себя что то новое по Js
@mator7359
@mator7359 3 роки тому
useful
@megavanya123
@megavanya123 4 роки тому
что делать если сайт не показывает поле это с чем связано я посмотрел в консоли нету ошибок подскажите
@mercals
@mercals 4 роки тому
у меня такая-же хрень
@user-po3qc7yx6g
@user-po3qc7yx6g 4 роки тому
Вызывать функцию нужно, может файл неправильно подключён
@bogdanstrel9212
@bogdanstrel9212 4 роки тому
У меня так же было, я поместил файл html в папку js ошибочно. Файл html должен быть в главной папке (в этом случае WWW).
@tuavtorru3041
@tuavtorru3041 4 роки тому
Если не помогает напиши внутрь тега канвас какой-то текст и если он выводиться то значит у тебя слишком старая версия браузера.
@ZipOfficial
@ZipOfficial 3 роки тому
@@tuavtorru3041 у меня не вываодит текст значит сбраузером у меня всё нормально?
@timagoldm
@timagoldm 9 місяців тому
всем у кого что-то не получаятся или не работает: пересмотрите видео, вы что-то сделали неправильно. p.s. залайкайте чтобы все увидели
@user-ol7fc8ls7e
@user-ol7fc8ls7e 2 роки тому
Если вы хотите что-бы когда голова врезалась в стенку голова не пролетала ещё клетку, то просто вставте этот код после кода с созданием переменной newHead!
@s1lentgrave
@s1lentgrave 4 роки тому
и ещё такой момент, если змейка внезапно остановилась при развороте, но сама ещё прямая, значит она развернулась не изменив координаты и сама себя съела
@s1lentgrave
@s1lentgrave 4 роки тому
@Mad Doctor Это нужно изменить в другом месте, не там где коды указываются, а if(dir == "left") snake -= box; ... Тут проверь, все ли минусы и плюсы правильно написал, и порядок (left, right, up, down)
@s1lentgrave
@s1lentgrave 4 роки тому
@Mad Doctor Скинь скриншот
@user-hl7xo2fu9o
@user-hl7xo2fu9o Рік тому
Что делать если не воспринимает ctx.drawImege(ground, 0, 0)
@Egor_top518
@Egor_top518 2 роки тому
Привет вот в картинке для поле змейки я всё правильно прописал обновлял страницу и картинка не появляется что делать?
@GANGST1ER
@GANGST1ER 3 роки тому
Что-то не могу понять с рандомом. Если он генерирует от 0 до 1, то как получаются координаты больше 1 и меньше 17 при умножении?
@GANGST1ER
@GANGST1ER 3 роки тому
Понял. Дело в том что random генерирует дробные числа в пределах от 0 до 1.
@zxcblood1489
@zxcblood1489 4 роки тому
А я прям на телефоне кодил и получилось
@argonaut2899
@argonaut2899 4 роки тому
Оаоаоа
@firesword2912
@firesword2912 4 роки тому
а если я хочу добавить еще цветов к змеи?
@alexanderpikeev9780
@alexanderpikeev9780 4 роки тому
Гоша, твои уроки по JavaScript еще актуальны?
@jabka1356
@jabka1356 4 роки тому
Чувак скинь свой вк я тоже начинаю обучение джва скрипт . И да его уроки актуальны
@volkovgst
@volkovgst 4 роки тому
Очень даже
@hahatoon5443
@hahatoon5443 4 роки тому
@@jabka1356 хах, давай я с вами
@Black_cat3549
@Black_cat3549 2 роки тому
Гоша пожалуста ответь уменя не прорисовуеца поле что мне делать?
@foxyboy5059
@foxyboy5059 2 місяці тому
где ты ссылку для картинки написал 🥺
@user-gj5yl1ge4i
@user-gj5yl1ge4i 3 роки тому
Всем привет, на 30 минуте я запускаю змейку и квадрат просто исчезает, и следовательно не двигается 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 drawGame() { ctx.drawImage(ground, 0, 0); ctx.drawImage(foodImg, food.x, food.y); for(let i = 0; i < snake.length; i++) { ctx.fillStyle = "green"; 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 = [0].x; let snakeY = [0].y; snake.pop(); 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, }; snake.unshift(newHead); } let game = setInterval(drawGame, 100);
@cryptoline1304
@cryptoline1304 Рік тому
Спустя 2 года, думаю, неактуально, но вместо: let snakeX = [0].x; let snakeY = [0].y; должно быть: let snakeX = snake[0].x; let snakeY = snake[0].y;
@ArtSolist
@ArtSolist 3 роки тому
Полчаса искал ошибку... оказалось в строке: const ctx = canvas.getContext("2d"); Написал 2d написал с большой буквой, то есть 2D. А в консоль писало: "Uncaught TypeError: Cannot read property 'drawImage' of null at drawGame" 😁
@fffttt3935
@fffttt3935 Рік тому
Not allowed to load local resource. Как испавить, подскажите пожалуйста
@user-nz2nk5wp9t
@user-nz2nk5wp9t 4 роки тому
Подскажите, вообще ни чего не отображает в браузере, белая пустота, уже для пробы полностью копировал всё и папки и код...
@GooseDL1337
@GooseDL1337 4 роки тому
@Schellenberg у вас файл js работает раньше чем html. Объявите тег после того как закрывается тег
@user-nz2nk5wp9t
@user-nz2nk5wp9t 4 роки тому
@@GooseDL1337 попробую, благодарю за ответ.
@yingwai8668
@yingwai8668 4 роки тому
@@GooseDL1337 не работает... ничего не работает.. я уже заебался с этим
@olexandr5649
@olexandr5649 4 роки тому
@@yingwai8668 ты все food заменил на foodImg? проверь правильность написания кода и указаных путей к картинкам. У меня файлы расположены в таких же папках как у него, но чобы получить картинку я прописал такой путь: foodImg.src = "../img/food.png"; после чего все заработало
@ss888dd
@ss888dd 4 роки тому
@@GooseDL1337 тег в самом видео объявляется позже канваса.
@user-ir8nd6mj2b
@user-ir8nd6mj2b 4 роки тому
3:43 Это необязательно, у меня работает просто обращение по id (т.е. переменная "game", которой нет в коде, возвращает canvas).
@MaximMoPeR
@MaximMoPeR 4 роки тому
@H 336 Что ты тут делаешь? Лол я твой подписчик =)
@user-qq9qz8gl7y
@user-qq9qz8gl7y 4 роки тому
@@MaximMoPeR ты на этого дауна подписан?
@garnish1006
@garnish1006 2 роки тому
@@user-qq9qz8gl7y всм
@argus2298
@argus2298 4 роки тому
Сделай видео про "крестики и нолики".
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
Могу скинуть файл через Гугл диск
@DanilSolodkov
@DanilSolodkov 4 роки тому
это жызнь давай
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
@@DanilSolodkov не суди за комментарии ( там их только 2) я его написал года два назад
@DanilSolodkov
@DanilSolodkov 4 роки тому
это жызнь чего?коменту неделя
@Evoleo
@Evoleo 4 роки тому
Как только выйдет западный ролик с такой тематикой - он сделает
@js_games_for_dummies
@js_games_for_dummies 10 місяців тому
29:43 Переписала 12 раз -- хвост не убирается, snake.pop() не работает: Snake Game body{ background: linear-gradient(rgba(0, 0, 0, 0.4), transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.4), transparent 1px); background-size: 32px 32px; } canvas{ display: block; width: 608px; height: 608px; border: 1px solid black; margin: 32px 23px; } const cvs = document.getElementById("snake"); const ctx = cvs.getContext("2d"); const box = 32; ctx.fillStyle = 'black'; ctx.fillRect(0, 94, 608, 1); let snake = []; snake[0] = {x : 9 * box, y : 10 * box }; let food = { x : Math.floor(Math.random() * 17 + 1 ) * box, y : Math.floor(Math.random() * 15 + 3 ) * box }; let score = 0; let dir; document.addEventListener('keydown', direction); function direction(event){ if(event.keyCode == 37 && dir != 'right') {dir = 'left'; } if(event.keyCode == 38 && dir != 'down') {dir = 'up'; } if(event.keyCode == 39 && dir != 'left') {dir = 'right'; } if(event.keyCode == 40 && dir != 'up') {dir = 'down'; } } function drawGame(){ for(let i = 0; i < snake.length; i++){ ctx.fillStyle = 'green'; ctx.fillRect(snake[i].x, snake[i].y, box, box); } ctx.fillStyle = 'red'; ctx.fillRect(food.x, food.y, box, box); let snakeX = snake[0].x; let snakeY = snake[0].y; if(dir == 'left') snakeX -= box; if(dir == 'up') snakeY -= box; if(dir == 'right') snakeX += box; if(dir == 'down') snakeY += box; let newHead = { x : snakeX, y : snakeY }; snake.unshift(newHead); snake.pop(); } let game = setInterval(drawGame, 1000);
@yanayukhymenko3017
@yanayukhymenko3017 2 роки тому
Я хотел сделать несколько еды, но когда змея проглатывает одну ту пропадает сразу несколько и больше не появляеться. Можно это как-то исправить?
@user-ld1wd1tv3b
@user-ld1wd1tv3b 4 роки тому
А сможешь сделать видео как создавать меню для игр (старт, настройки и т. д)
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
Там легко . Сначала делаешь меню дизайн и кнопки и помещяеш всё кто в функцию , далее делаешь саму игру и помещяеш это в другую функцию . Далее в меню при нажатии на кнопку старт ты вызываешь функцию с самой игрой а при нажатии на кнопку меню (в игре) прерываешь цыкл игры и вызываешь функцию с меню Это в теории а на практике не знаю как будет
@DanilSolodkov
@DanilSolodkov 4 роки тому
Делаеш отдельную страницу,и сайт делаеш там на html там старт кнопки и тд
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
@@DanilSolodkov и зачем для игры делать двадцать сайтов ? (Я так понял что для каждого окна отдельный сайт)
@DanilSolodkov
@DanilSolodkov 4 роки тому
это жызнь ты куку?страницу отдельную
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
Грузится будет дольше
@yosa9463
@yosa9463 4 роки тому
сделай видео урок по Meteor js
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
?
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
Это библиотека?
@yosa9463
@yosa9463 4 роки тому
@@user-tp5jh1vd3s +
@kertaw3853
@kertaw3853 4 роки тому
Скажи рандомное английское слово и с вероятностью 99% это библиотека для JavaScript
@faded_boy9277
@faded_boy9277 3 роки тому
Я не могу найти такоеже поле оно мне очень понравилось можете кинуть ссилку на него ИЛИ как то передать
@user-xu1ck1wv9r
@user-xu1ck1wv9r 7 місяців тому
я один сделал эту змейку в блокноте😂?
@baxtibeksaidov9841
@baxtibeksaidov9841 7 місяців тому
какой у тебя шрифт, покажи мне я тоже такой хочу 😁😁
@layon5413
@layon5413 4 роки тому
Гоша, я твой старый подписчик. У меня есть очень интересный вопрос. Он немного не по теме программирования, а больше по теме 3D и создания игр. Но я не знаю кому ещё задать. Если прочитал это напиши хоть . и я распишу вопрос. Надеюсь прочитаешь.
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
А какой вопрос?
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
Какой движок ? Где моделировать ?
@layon5413
@layon5413 4 роки тому
@@user-tp5jh1vd3s как бы вопрос не по моделям. Я видел на ютубе англ видео о дешёвой лицевой анимации. Люди обмазывали лицо зелёнкой и делали так лицевую анимацию. Могу скинуть. Очень интересная тема, и на рутубе никто не делал. Автор делал в блендера. (но я люблю синьку и подобных видео не было).
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
@@layon5413 это не зелёнка )) это что-то типо присосок . И это могут позволить только богатые дяди и тети (очень дорого)
@layon5413
@layon5413 4 роки тому
@@user-tp5jh1vd3s ты очень плохо читал. Это бесплатно, в этом и прикол. Они как то настраивают и делают анимацию. Случайно на ролик наткнулся, оказалось по подобному запросу есть ещё. И там реал похоже на зеленку.) А студийная анимация стоит десятки тысяч долларов.
@nailfah
@nailfah 4 роки тому
Почему картинку загрузили через setInterval? Да ещё со значением 100. Она же по логике должна как раз мелькать...
@user-vz4jh7zr4r
@user-vz4jh7zr4r 4 роки тому
А скажите пожалуйста от этого значения может не отображать половину поля?
@ZipOfficial
@ZipOfficial 3 роки тому
почему у меня не выводит картинку поля, я БУКВАЛЬНО сделал всё точно так же как видео, всё равно картинку не выводит, помогите пожалуйста
@VitTravelUSA
@VitTravelUSA 4 роки тому
У меня постоянно ошибка в JS
@Gp-iv1ey
@Gp-iv1ey 2 роки тому
у меня фрукты иконки только от 48 пикселей есть. Что делать?
@tatsuki5929
@tatsuki5929 3 роки тому
33:00
@user-iw3eg3pu1d
@user-iw3eg3pu1d 2 роки тому
А ты можешь показать как создать игру Got of war на javascript ?
@iwenttobed5417
@iwenttobed5417 2 роки тому
Кринж
@launcelot__
@launcelot__ 3 роки тому
25:14
@user-ds4gj4hg9g
@user-ds4gj4hg9g Рік тому
Я бы изображение в CSS сделал
@sanjar5862
@sanjar5862 4 роки тому
Нашел 1 баг но не получается поправить . Когда змейка движется в лево при нажатии вниз и вправо одновременно змейка направляется на право( и тож самое при движении вправо ) как пофиксить это ?
@cryptoline1304
@cryptoline1304 Рік тому
Спустя 3 года скорее всего неактуально, но один из простых способов - создать переменную, назовем ее drawUpdated, которая будет являться флагом проверки перерисовки. Далее: // где-нибудь в начале game.js файла let drawUpdated = false; function direction(event){ if(event.keyCode == 37 && dir != "right" && !drawUpdated) // разрешаем одно изменение направления в рамках перерисовки dir = "left"; else if(event.keyCode == 38 && dir != "down" && !drawUpdated) // разрешаем одно изменение направления в рамках перерисовки dir = "up"; else if(event.keyCode == 39 && dir != "left" && !drawUpdated) // разрешаем одно изменение направления в рамках перерисовки dir = "right"; else if(event.keyCode == 40 && dir != "up" && !drawUpdated) // разрешаем одно изменение направления в рамках перерисовки dir = "down"; /*Пишем, что перерисовка произошла, чтобы при повторном нажатии кнопок wasd в рамках текущей перерисовки змейка не изменила направление и не возникло ситуации, когда, например, змейка двигалась налево и до перерисовки она изменила направление вниз и потом направо из-за чего может показаться, что она сразу пошла слева направо. */ drawUpdated = true; } function drawGame(){ ... drawUpdated = false; // после перерисовки сбрасываем флаг, чтобы снова установить новое направление в direction(event). } P.S. Вероятнее всего можно сделать более лаконично и красиво, т.к. опыта на js особо не было, но способ рабочий.
@DENGEO1995
@DENGEO1995 3 роки тому
Белый экран а в консоли пишет : Failed to load resource: net::ERR_FILE_NOT_FOUND ss/style.css:1 game.js:43 Uncaught SyntaxError: Identifier 'i' has already been declared game.js:43
@ogg4470
@ogg4470 3 роки тому
перекинь style.css:1 и game.js:43 в папку где index.html и измени путь на а game.js на должно сработать
@catto88
@catto88 3 роки тому
замени const на let на строке 43
@dlazder3937
@dlazder3937 Рік тому
Пытался разобраться как работает змейка, но даже я полный новичок вижу что код написан как попало. Куча лишних переменных, объектов непонятно для чего они нужны... Вот в чем проблема например сделать объект и с направлениями змейки и позицией? не понятно...
@saahaisaev2550
@saahaisaev2550 3 роки тому
Спасибо Но дай пж инфу как сделать управление для мобильных гаджетов
@prichendal
@prichendal Рік тому
Добавь свои кнопки в html и синхронизируй с game.js
@taaron8043
@taaron8043 4 роки тому
почему когда пишешь например document.get... не высвечивается подсказка getElementById
@Aituar_
@Aituar_ 3 роки тому
Зависит от редактора кода,
@alibekyusupov322
@alibekyusupov322 3 роки тому
А за сколько примерно можно научиться писать такие коды от нуля? Учу уже неделю, понял почти всё но сам писать сначало не смогу
@user-dg1rm5xp1o
@user-dg1rm5xp1o 3 роки тому
Пиши сперва все по видео, будешь со временем своим мозгом осознавать код, функции будут запоминается и в будущем сможешь писать код без сторонней помощи, но до этого ещё долгая практика таких сценариев. На своём опыте говорю, не помогли учебники, помогло списывание с туториалов.
@user-dg1rm5xp1o
@user-dg1rm5xp1o 3 роки тому
И да, неделя для js - мало, месяц как минимум. Хотя в js нету прям заумных функций(
@user-vz4jh7zr4r
@user-vz4jh7zr4r 4 роки тому
Помогите пожалуйста у меня поле половину отображает
@myshkin832
@myshkin832 4 роки тому
*А какая разница между var, let, const?*
@intbyte
@intbyte 4 роки тому
const - неизменяемая переменная(константа) var - старый способ создания переменной let - новый способ создания переменной, с некоторыми незначительными преимуществами перед var
@myshkin832
@myshkin832 4 роки тому
@@intbyte спасибо 🙂
@rbk9582
@rbk9582 4 роки тому
@@intbyte если создать let переменную в функции то она будет только в её пределах, если не ошибаюсь.
@ybamaster
@ybamaster 3 роки тому
А АБЕЗАТЕЛЬНО ПИСАТЬ CONST И LET просто я мало знаю о es6
@drino955jug3
@drino955jug3 3 роки тому
так прочитай про это
@levveremchuk1475
@levveremchuk1475 4 роки тому
помогите пожалуйста код аналогичный ошибок в консоле нет но змейка не растет кде я сделал чтото не так????
@bakumjesus7143
@bakumjesus7143 4 роки тому
Перед кнопками left , right удали pop
@iGotton
@iGotton 4 роки тому
Обязательно канвас использовать?
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
Да
@iGotton
@iGotton 4 роки тому
@@user-tp5jh1vd3s получается это уже не чистый js.
@user-tp5jh1vd3s
@user-tp5jh1vd3s 4 роки тому
@@iGotton почему?
@user-oc2nr7rz9e
@user-oc2nr7rz9e 4 роки тому
Ну так в названии видео и не написано один лишь чистый js, а чистый js и html
@Evoleo
@Evoleo 4 роки тому
@@user-tp5jh1vd3s потому что canvas - это html тэг
@user-vz4jh7zr4r
@user-vz4jh7zr4r 4 роки тому
Гоша помоги пожалуйста у меня вот это поле половину отображает половину нет все проверил и все ровно
@Aituar_
@Aituar_ 3 роки тому
Может вы задали ширину и высоту через СИэсЭС?
@user-qg7yj4ls5u
@user-qg7yj4ls5u 4 роки тому
Вместо морковки, надо было поставить мышку, для предание игре реальности!!! И букву C с плюсом!!!
@user-ss2nh1nv8i
@user-ss2nh1nv8i 4 роки тому
Можно на бесплатный github pages выгрузить
@dvnnymvnrv8091
@dvnnymvnrv8091 6 місяців тому
Ребята скиньте пожалуйста несколько строк кода чтобы еда НЕ спавнилась под змейкой
@play_gamespg6446
@play_gamespg6446 Рік тому
А что делать если змейка не отображается сделал всё точь в точь, и всё равно не появляется
@aituarimashev8068
@aituarimashev8068 Рік тому
Полностью переписал код не получается вообще бесконечная ошибка. P.S. там где ctx.drawImage(ground, 0, 0);
@88woda
@88woda Рік тому
так же, исправил?
Учим HTML5 Canvas за 30 минут!
36:56
Хауди Хо™ - Просто о мире IT!
Переглядів 209 тис.
Повістки у Києві: «Яке право вони мають забирати всіх мужиків?» #війна #мобілізація #військові
00:41
Слідство.Інфо | Розслідування, репортажі, викриття
Переглядів 1,7 млн
Змейка на JavaScript
8:30
epicnull - IT
Переглядів 30 тис.
Responsive web design in 37 minutes + layout. You don’t need Bootstrap!
36:44
Фрілансер по життю
Переглядів 1 млн
Делаем 2D-игру на Javascript (KaboomJS). Урок HTML/CSS/JS
26:19
Уголок фронтендера
Переглядів 2,5 тис.
Как делают игры на JavaScript для начинающих
6:04
Web Developer Blog
Переглядів 116 тис.
Как сделать игру на Python под Android? (PyGame)
10:29
Хауди Хо™ - Просто о мире IT!
Переглядів 392 тис.
Разработка игр | Языки программирования и Программы
22:12
Cyberstars - Как создать игру
Переглядів 139 тис.
Sprite Animation in JavaScript
46:05
Franks laboratory
Переглядів 146 тис.
Повістки у Києві: «Яке право вони мають забирати всіх мужиків?» #війна #мобілізація #військові
00:41
Слідство.Інфо | Розслідування, репортажі, викриття
Переглядів 1,7 млн