Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Сегодняшний проект показывает, как одна база кода, один набор исходных файлов может быть использован на 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-игр, созданием карточных игр или просто играете в блэкджек, этот проект ждет вас…