Как создать блоки тетриса в XNA с помощью C #? - PullRequest
1 голос
/ 15 марта 2010

Я делаю клон тетриса в C # с XNA, и я не уверен, как на самом деле реализовать блоки.

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

К сожалению, я не знаю, как на самом деле определять блоки для создания кусков, и я не знаю, как управлять ими, чтобы они вращались и т. Д.

Редактировать: Мне также понадобится помощь в изучении того, как сделать сетку Тетрис.

Ответы [ 4 ]

1 голос
/ 16 марта 2010

Может быть, эта ссылка на Coding4Fun поможет.Это на немецком языке, но вы должны быть в состоянии получить исходный код и посмотреть, как эта проблема решается здесь.

Просто чтобы быть уверенным, здесь прямая ссылка для скачивания 1006 *.

1 голос
/ 15 марта 2010

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

1 голос
/ 16 марта 2010

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

Что касается сетки, посмотрите на ответы @ fortran и @ aaron, булева матрица сработает.

1 голос
/ 15 марта 2010

Используйте булеву матрицу для моделирования состояния экрана. Каждая часть представляет собой еще одну меньшую булеву матрицу.

Поворот фигуры так же прост, как немного поиграть с координатами (я оставил это вам).

О том, как визуализировать, просто нарисуйте фрагмент фигуры для каждого истинного значения в вашей матрице ored со смещением и вращением текущего падающего фрагмента.

...