LINUX.ORG.RU

Как грамотно реализовать камеру для 2d мира

 ,


1

3

Обобщенный вопрос, интересует для любого языка. Но в данном конкретном случае я пишу игру на html5. Суть проста, есть большой мир, есть наш объект в центре, мы перемешаемся - мы всегда остаемся в центре, а двигается мир. Возможно приблизить или отдалить все.

А теперь вопрос как это все грамотно реализовать. Я конечно могу ввести какие-то переменные scaleX, scaleY, offsetX, offsetY и для каждого рисуемого объекта писать что-то типа

drawXY(obj.x*scaleX + offsetX, obj.y*scaleY + offsetY); Но может лучше для этих целей использовать трансформации(емнип) которые есть в canvas(во многих технологиях они есть? Qt, html?)

★★★

используй webGL. OpenGL для таких целей подходит лучше чем чистый canvas и работает быстрее.

Aswed ★★★★★
()
Последнее исправление: Aswed (всего исправлений: 1)

Но если все же хочешь именно canvas, то используй матрицы трансформации, как это сделано в OpenGL. Зачем изобретать велосипед? Посмотри как это сделано в хорошем графическом конвейере.

Aswed ★★★★★
()
Ответ на: комментарий от Aswed

Посмотри как это сделано в хорошем графическом конвейере

Графический конвеер имеется ввиду какой-то игровой движок для html5? Я если честно не разбираюсь, можешь назвать парочку хороших?

abs ★★★
() автор топика

Трансформации будут делать по сути то же, только накладнее и тормознее для некоторых частных случаев. Если у тебя пиксельные спрайты и карта рисуется тайлами - оптимальнее будет считать вручную. Если у тебя вектор или свободное масштабирование какой-то текстуры - лучше использовать opengl.

E ★★★
()
Последнее исправление: E (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.