Скроллер на стороне C

#c #opengl #grid #side-scroller

#c #opengl #сетка #Скроллер на стороне

Вопрос:

Я рассматриваю возможность создания базового скроллера с использованием OpenGL и C , однако у меня возникли проблемы с решением нескольких основных концептуальных проблем, а именно:

  1. Разделение окна на простые «блоки» (своего рода сеточная система). На каком уровне я хотел бы это сделать? (Размер окна просмотра OpenGL или с помощью некоторой абстракции, которая обеспечивает работу с кратными x?)

  2. Сохранение данных для всех этих «блоков» для обеспечения обнаружения столкновений и некоторых специальных эффектов. Какой разумный способ сделать это — я думал о многомерном массиве объектов (которые содержат такую информацию, как тип плитки), но это не кажется очень элегантным или эффективным решением.

Комментарии:

1. Вероятно, это слишком широкий вопрос для SO. В вашем местном книжном магазине или библиотеке есть множество книг в стиле учебников для этого. Давным-давно, когда я делал это с DirectX7 с такой книгой, как полный новичок.

Ответ №1:

Обычно это не окно (т.е. окно просмотра), которое разделено на сетку, а скорее на «область игрового процесса». Выберите подходящий размер в соответствии со стилем вашего рисунка (что-то вроде 64 пикселей — по техническим причинам вы можете выбрать размер, равный степени двойки) и создайте плитки такого размера для своей игры (сохраненные и загруженные в виде одномерного массива)

Затем на эти плитки ссылаются (смещением) в tilemap, которая фактически описывает, как выглядит ваш уровень. Каждая плитка также может иметь дополнительные метаданные для обработки столкновений и игровых событий. Возможно, вы захотите использовать существующий формат карты и набор инструментов для экономии времени, например Mappy.

Комментарии:

1. Mappy отлично подходит для движка плиточной сетки. Для бокового скроллера ему было бы лучше использовать единую текстуру фона, накладывать спрайты и перемещать прямоугольник вида по игровой области, чтобы определить, какие части фона и какие спрайты рисовать.

Ответ №2:

Советы:
подумайте о отображении и данных отдельно (модель поиска-Представление-Контроллер).

То, как вы храните данные, зависит от способа доступа к ним, а не от того, как они будут отображаться. Подумайте об этом с точки зрения компьютеров!

Подсказка, часто проще работать в одномерном хранилище данных и вычислять, где вдоль него находится следующая точка вверх / вниз, чем работать в 2d.