【发布时间】:2016-06-30 17:33:28
【问题描述】:
我正在我的游戏中创建一个键盘。我创建的游戏对象有 10 个按钮:0-9。玩家必须输入 4 位密码才能打开门。一旦玩家输入第一个数字,它就会显示在键盘的屏幕上。
我的所有基本代码都能正常工作,但我确信我这样做的效率非常低。现在,我已将以下功能附加到我的一个键上,实际上是数字 1 键:
public void Key1() {
if (digit1entered == false) {
digit1 = 1;
displaycode.text = digit1.ToString () + digit2.ToString () + digit3.ToString () + digit4.ToString ();
print ("First digit entered");
digit1entered = true;
} else {
if (digit1entered == true && digit2entered == false) {
digit2 = 1;
digit2entered = true;
displaycode.text = digit1.ToString () + digit2.ToString () + digit3.ToString () + digit4.ToString ();
print ("2nd digit entered");
} else {
if (digit2entered == true && digit3entered == false) {
digit3 = 1;
digit3entered = true;
displaycode.text = digit1.ToString () + digit2.ToString () + digit3.ToString () + digit4.ToString ();
print ("3rd digit entered");
} else {
if (digit3entered == true && digit4entered == false) {
digit4 = 1;
digit4entered = true;
displaycode.text = digit1.ToString () + digit2.ToString () + digit3.ToString () + digit4.ToString ();
print ("4th digit entered");
}
}
}
}
}
为了使整个键盘正常工作,我需要再创建 9 个类似上述的函数,每个函数的更新值为 2-0。这意味着我最终会得到 10 个相似的函数,除了它们输入的值。那是糟糕的编程,那么我该如何避免呢?哦,如果上面的编程一开始就很糟糕,欢迎所有提示;-)
【问题讨论】:
-
你使用的.UI正确吗?
-
要做好这件事非常困难。我会给你一些建议。
-
我认为最好的办法是让玩家输入一个组合并检查计数是否正确,然后检查该组合。并使用 Joe Blow 对实际按钮按下所做的一些功能。
-
Gun - 基本上你只是将它输入到状态机,正如 ManO 解释的那样。这就是概念上的“整体”答案。 “字符串”(带有 FIFO)完美地满足了这种微不足道的需求。