Лучший способ отображения и программирования игрового поля? - PullRequest
6 голосов
/ 28 ноября 2008

Как лучше всего отобразить и запрограммировать простую игровую доску (скажем, шахматы, шашки и тому подобное) на C #? С точки зрения управления и базовой игровой логики.

Мне пришла в голову идея использовать Picture Box (или унаследованный от него класс) с классами Board & Field.

  • В конце концов, это приличное решение?
  • Как бы я отделил графику от игровой логики, используя это решение (я считаю, что классов Board & Field может быть недостаточно)?
  • Достаточно ли эффективен PictureBox для этой цели?

Поиск в Google также привел меня к решениям, использующим кнопку / ярлык для каждого игрового поля. Но вернемся к Board, Field и PictureBox.

Расширяемость - правильная разработка позволила бы легко реализовать любую другую настольную игру (или даже карточную игру), так как в конце концов все сводится к доске с изменяемыми полями.

Ответы [ 5 ]

4 голосов
/ 28 ноября 2008

С точки зрения структуры данных взгляните на структуру данных. http://en.wikipedia.org/wiki/Bitboard

4 голосов
/ 28 ноября 2008

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

Сам рисунок можно сделать на PictureBox - это идеальный элемент управления для такой цели - но это не так уж важно, потому что, как только ваша логика рисования будет на месте, она не будет зависеть от вида контроля.

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

1 голос
/ 28 ноября 2008

Если вы чувствуете себя очень предприимчивым, вы можете попробовать XNA;)

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

1 голос
/ 28 ноября 2008

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

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

Я бы, наверное, сначала запустил Tic-Tac-Toe, посмотрел, есть ли где-нибудь, что тебе нужно, чтобы разорвать разделение слоев и исправить это рано, прежде чем увязнуть в игровой логике.

0 голосов
/ 28 ноября 2008

Как правило, сначала спроектируйте логические конструкции для платы, фигур и тому подобного, затем выполняйте операции над ними, и только, наконец, спроектируйте графический интерфейс, более или менее как внешний интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...