@AndrewRusinas

2d игры на чистом JS без Canvas?

Привет, провожу мысленный эксперимент на тему того, что случится, если попытаться сделать 2D игру без Canvas, а исключительно на div'ах.

Все примеры разработки простых игрушек в обязательном порядке включают в себя использование canvas - всевозможные змейки, flappy bird'ы, пинг-понги начинаются с создания canvas. А что, если сделать их просто "обычной версткой"? Какие минусы?

От себя добавлю, что с канвасом работал в рамках конкурса телеги на создание графика - помню, был гемор с координатами. Ну и полное отсутствие css, любой стиль нужно было задавать через js построчно. Знаю, что многие выполнили эту задачу используя svg и, хоть там и были свои сложности, результат получился лучше.

А в плане разработки игр делал разве что шахматы, обошлось без канваса, но там и рендерить, разумеется, особо нечего.
  • Вопрос задан
  • 794 просмотра
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Все возможно, но!

На дивах - в общем итоге вы получаете DOM-дерево. А DOM-деревья очень медленные, как браузер не оптимизируй. Они тащат за собой много много всякого легаси и много много не нужных для графики вещей.
У них другое предназначение.

Другое дело канвас, где все создано для быстрой отрисовки графики.

Чем больше числа и чем слабее компьютер - тем заметнее разница.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Вообще никаких проблем.
На дивах даже 3D action есть через css 3d transform!
Главное - клонировать, если нужны подобные объекты (div'ы) и следить за асинхронностью исполнения кода везде, где это возможно.
(+"прямые руки")
Ответ написан
Комментировать
@iordania
Удачи! я как-то ландшафт (импровезированный) создавал... работала отрисовка через цикл...
Как только запускался рендер - висло всё... проц 100%, диск 100%, оперативка 100% !
После третьего раза он не включался и пришлось менять материнку... Возможно совпадение!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы