您的当前位置:首页正文

DisplayInstructions

2022-01-21 来源:独旅网


2.4.1 更改游戏状态

编译并运行程序,如果没问题的话,结果应该如下图。应用程序能够追踪手部的运动,并且当用户将手放到对应的位置后,应用程序的状态会从GameOver转到SimonInstructing状态。下一步是要实现ChangePhase方法,代码如下:

private void ChangePhase(GamePhase newPhase) {

if (newPhase != this.currentPhase)

{

this.currentPhase = newPhase;

switch (this.currentPhase)

{

case GamePhase.GameOver:

this.currentLevel = 0;

RedBlock.Opacity = 0.2;

BlueBlock.Opacity = 0.2;

GreenBlock.Opacity = 0.2;

GameStateElement.Text = \"GAME OVER!\";

ControlCanvas.Visibility = Visibility.Visible;

GameInstructionsElement.Text = \"将手放在对象上开始新的游戏。\";

break;

case GamePhase.SimonInstructing:

this.currentLevel++;

GameStateElement.Text = string.Format(\"Level {0}\

ControlCanvas.Visibility = Visibility.Collapsed;

GameInstructionsElement.Text = \"注意观察Simon的指示。\";

DisplayInstructions();

break;

case GamePhase.PlayerPerforming:

this.instructionPosition = 0;

GameInstructionsElement.Text = \"请重复 Simon的指示\";

break;

}

} }

上面的代码和Kinect无关,事实上可以使用鼠标或者触控板来实现这一步,但是这段代码是必须的。ChangePhase方法用来控制UI界面来显示当前游戏状态的变化,维护一些游戏进行所需要的数据。在GameOver状态时,矩形框会渐变消失,然后改变操作指示,显示按钮来开始一个新的游戏。SimonInStructing状态不在更新UI界面讨论范围内,他调用了两个方法,用来产生指令集合 (GenerateInstructions),并将这些指令显示到UI界面上(DisplayInstructions),代码中也定义了instructionPosition变量,来维护当前所完成的指令步

骤。

因篇幅问题不能全部显示,请点此查看更多更全内容