В общем-то изначальный задум был как раз в том, чтобы играться с кодом, а не затирать пеинт до дыр. Но когда я общался с HR-ом и разговор зашёл о том, чем я занимаюсь, будучи безработным, пришлось показать это творение, на что она сказала "О, прикольно! Мы когда искали jun-ов по JS, то у нас было похожее тестовое задание. Только там у ребят игры были из картинок, а не палочек". Ну, я не стал вдаваться в технические особенности и объяснять, что тут тоже используются картинки, просто они нарисованы за 30 секунд, а не скачаны со стоков за те же 30 секунд, а если бы вся игра строилась на отрисовывании отдельных палочек, то это кукушкой можно было бы двинуться, описывая каждый вектор и его движения... Но для себя я понял, что внешний вид сильно влияет на первое впечатление.
PS: Вероятно, в той фразе было просто задето моё самолюбие.
Здорово, что разобрался с нативным canvas, это полезно для понимания, как работает графика в браузере :)
Попробуй использовать библиотеки для работы с canvas (например, createJS, pixijs). Это позволит существенно сократить код и придать ему гораздо больше структуры, чем сейчас. В них, зачастую, из коробки идёт работа с загрузкой ассетов. Кроме этого — библиотеки для работы со звуком и анимациями. Опять же, поможет не велосипедить и не встретиться с типичными ошибками (как, например, работа анимациями через timeout).
Выше советовали "чистый код" применительно к JS. Можешь и самого Роберта Мартина "Чистый код" почитать, там много объяснений, почему именно хороши те или иные принципы.
Код сейчас действительно плохо структурирован, плохо читаем. Удели внимание названию переменных, не используй "магические числа" в коде, выноси в константы. Это снижает и читаемость кода (возможно, через пару недель ты уже сам не вспомнишь, что означает 1*8*1.5) и делает его очень негибким, плохо расширяемым.
В плане графики, там есть невероятно конские по размеру картинки, которые можно порезать на мелкие и затайлить.
И да, у тебя готова игра! Поздравляю :)
Удачи! :)
Прикольно. А какие источники инфы/тулзы использовал? Поделись, пожалуйста, опытом, бро.
источники инфы/тулзы
Ну например, думаю "Надо, чтобы best score сохранялся в кукис и считывался при следующем открытии игры", открываю гугл, ввожу "JS куки", читаю статейки по первым двум-трём ссылкам. Потом вижу (через F12 в Хроме), что кукисы получается сохранять и я гуглю "JS считать значение куки" - а там вообще по первой/второй ссылке готовая функция на стаковерфлоу. Ну и так всю дорогу.
Как подметил один JS-разраб: "Единственное, что спасает разработчиков от их вытеснения с рынка школьниками, использующими стаковерфлоу - это трудовой кодекс".
Кодил в WebStorm, потому что в перечне рекомендуемых каким-то сайтом IDE, он был первый в списке. Я его скачал, поставил тёмную тему и лень пересаживаться на что-то другое.
Рисовал в paint.net, туторы смотрел на ютубе, рефы искал в гугле, через поиск картинок.
Вот кто-то, наверное, скажет, что все это прописные истины, но можно сто книг до дыр зачитать, но реально поймёшь только если на практике попробуешь. По себе знаю, когда очередной рисунок получается в итоге криворукой шляпой, я просто начинаю новый. Потому что каждый раз понимаешь для себя что-то новое, хоть результат и так себе. Главный результат - это опыт. PS: это Мардж? : )
Главное выводы правильные делать, а не просто бездумно рисовать, опыт разный бывает)
Что-то мне это напоминает.
Ах, да.
Комментарий недоступен