在设计Windows 8商店,转弯游戏应用程序(XAML / C#)时,我正在寻找一些指导。
每回合,AI都会执行一些任务,玩家会完成一些任务。这可以视为状态机/固定工作流程。
我可以考虑使用游戏循环[1]或创建和跟踪由用户输入触发的状态机中的每个状态[2]:
[1]:
where(true)
{
BeginTurn();
AiDoSomething1();
await PlayerInput1();
AiDoSomething2();
await PlayerInput2();
EndTurn();
}
[2]:
void PlayerInput1()
{
lock(_lock)
{
if(State == State.State1)
{
State = State.State2;
AiDoSomething2();
}
}
}
void PlayerInput2()
{
lock(_lock)
{
if(State == State.State2)
{
State = State.State1;
EndTurn(); BeginTurn();
AiDoSomething1();
}
}
}
对于使用XAML / C#的Windows 8商店应用,是否有一种众所周知的模式可以解决这种情况?
答案 0 :(得分:1)
您可以使用VisualStateManager
控制视觉状态。使用此功能,您只需在VM中设置一个值,然后对视图中的视图状态做出反应。
答案 1 :(得分:0)
不确定你是否意味着游戏循环更符合字面意义,但万一有人在这里搜索,有三种方法可以在Windows 8中创建游戏循环:
可以找到更多详细信息http://www.spottedzebrasoftware.com/blog/windows-8-game-loop.html