我正在将游戏引擎从 Java 移植到 Windows Phone 7 XNA。我正在努力解决的一件事是如何创建模式对话框。该对话框使用 SpriteBatch 在 XNA 中呈现,就像其他所有内容一样,但我基本上想要的是这样的:
result = Dialog.Ask("Some Question?", DialogButtons.YesNo);
在Dialog.Ask
用户单击其中一个按钮之前不会返回。我所做的唯一一件事就是不断调用RunOneFrame()
游戏的方法:
private int runLoopCount;
public void BeginRunLoop() {
int runIndex = ++runLoopCount;
while (runLoopCount == runIndex) {
RunOneFrame();
Thread.Sleep(1);
}
}
public void EndRunLoop() {
--runLoopCount;
}
这样做有几个问题:
RunOneFrame
仅用于调试目的。- 输入无效!调用
TouchPanel.GetState()
orGamePad.GetState(PlayerIndex.One)
不返回新值。
有没有办法在不丢弃 Game 类和它为初始化所做的一切的情况下启动运行循环?而且我真的不知道如何没有 Game 类,因为在 Windows Phone 7 XNA 应用程序中没有 Main() 方法。它直接进入 Game 构造函数。