Боковой скроллер в C ++ - PullRequest
0 голосов
/ 11 октября 2011

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

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

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

Ответы [ 2 ]

1 голос
/ 12 октября 2011

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

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

0 голосов
/ 12 октября 2011

Советы:
Представьте себе дисплей и данные отдельно (ищите Model-View-Controller).

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

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

...