Играя в блэкджек на новом XBox 360, Windows ПК и Windows Phone 7.1(5)
Сегодняшний проект показывает, как одна база кода, один набор исходных файлов может быть использован на Windows ПК, XBox 360 и Windows Phone 7 одновременно…Да, и код на VB или C#...
Стартовый набор карточных игр: блэкджек (C#/VB)
Этот пример содержит полнофункциональную карточную игру блэкджек для Windows, консоли Xbox 360 и Windows Phone 7, созданную на основе легко расширяемой платформы карточных игр и анимации, которую можно использовать для создания собственных карточных игр.
Вот содержание включенного файла описания:
Как работает пример
Полная игра в блэкджек, которую можно собрать из этого примера, создана из набора различных компонентов более низкого уровня, каждый из которых можно отделить и расширить для создания новой функциональности:
- Классы из примера GameStateManagement управляют загрузкой, обновлением и сменой экранов
- Класс AnimatedGameComponentнаследующий от DrawableGameComponent, управляет анимацией положения и масштаба, а также прорисовкой текста объектов игры
- Карточная платформа, представленная главным образом классами CardGame, CardPacket, Player, GameTable и GameRule, обеспечивает общую функциональность карточной игры и расширяется классами Blackjack для реализации специфичной логики игры.
После начала игры GameplayScreenсоздает BlackjackCardGame, передавая BlackJackTableи инициализируя BlackjackPlayers. BlackjackCardGame управляет покадровым вводом с помощью метода GameScreen . HandleInputи передает данные через объект InputState всем другим классам, которыми он управляет.
Разными фазами игры управляет конечный автомат внутри BlackjackCardGame, решая когда начать раздачу, когда добавить и разрешить правила и когда начать новый раунд, основываясь главным образом на взаимодействии пользователя с разными кнопками ввода, которые являются объектами AnimatedGameComponent.
Прорисовка управляется объектами, наследующими от AnimatedGameComponent. Каждый объект отвечает за собственную прорисовку и за обновление состояний анимации внутри кадра. Многие объекты, включая GameTable, происходят от AnimatedGameComponent.
Расширение примера
Если вы интересуетесь созданием других типов карточных игр, расширение платформы Cards Framework – хорошее место для начала; создайте новый класс, наследующий от CardsGame, новый класс наследующий от GameTable, новый класс игрока, наследующий от Player, и новые классы GameRule, которые нужны для определения ценности карт в вашей игре. Затем вы можете изменить метод GameplayScreen . Initialize, чтобы вызвать собственный CardsGame . Initialize, добавить необходимые объекты Player и начать раунд игры.
Вот запущенный на Windows проект:
И на Windows Phone 7:
(Мой сын играл на XBox 360 в Skyrim и не позволил мне продемонстрировать работающий на этой консоли вариант игры…)
Давайте взглянем на исходники (VB):
Три платформы используют одни файлы кода. Как?
Если вы когда-либо интересовались созданием кросс-платформенных XNA-игр, созданием карточных игр или просто играете в блэкджек, этот проект ждет вас…