Задать вопрос
@XOPEK_32
Я хорек из Брянска

Массив картинок на JS?

Делаю игру на javascript. Необходимо создать массивом вертолеты в верхней части канваса. Создаю массив, который называю "enemy". Ввожу х, у, offset, margin. Получается, что отрисовывается только одна картинка. Подскажите, как сделать так, чтобы вверху плавали 10 врагов, заданных картинками. Если есть какой-либо другой способ, укажите на него пожалуйста. Заранее спасибо.
  • Вопрос задан
  • 987 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
twobomb
@twobomb
Выложите код например на JSFiddle. Я попробовал его запустить, но ничего не произошло и начал жутко виснуть браузер. Поэтому решил написать простенький пример, но меня затянуло и просидел несколько часов за разработкой. Вот что получилось и код. Можете посмотреть как рисуется из массива объекты но для начала хочу сказать.
Во первых в любой игре должна быть основная функция у меня это gameLoop у вас это похоже updateGameField. В ней вызываются основные методы рисования и обработки физики. Иногда кстате разделяют делают 1 метод для рисования например на 60fps, а второй для обработки физики на 200fps если нужно точные просчеты( быстрые полеты пуль и т.п.).
Во вторых, вот такого tm2 = setInterval (updateGameField, 10) быть не должно, я вообще считаю лучше бы эту функцию в javascript не добавляли многие не понимают ее обратную сторону. Вы вообще выставили 10мс а это 100 фпс! Если ваша машина в какой-то момент не успеет обработать хотя 1 раз, то вызовется функция еще раз и одновременно будет выполнять 2, 3, 10 функций до тех пор пока у вас все не зависнет, javascript не будет ждать он просто будет вызывать ее по кд поэтому для игровой функции нужно использовать в крайнем случае setTimeout(updateGameField,1000/60/*60фпс*/); в конце функции. Но давно уже появилась отличная оптимизированная функция requestAnimationFrame(gameLoop); которая будет стараться поддерживать 60 fps вашей игры. Рекомендую использовать только ее.
В третьих рекомедую почитать статьи о созадании игр, проблемы разработки, Delta-time и независимость частоты кадров, коллизии и т.п.
Все это необходимо почти в каждой игре, поэтому это нужно понимать чтобы смочь написать хоть что-то.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы