【发布时间】:2019-10-31 18:45:46
【问题描述】:
我正在制作一款手机游戏,玩家可以在其中获得四种(不重复的)颜色,他们可以一起滑动并创建一种新颜色。游戏将在屏幕上显示 1-4 个框,玩家必须一起滑动颜色并猜出正确的组合才能进入下一轮。我已经计算了玩家可以滑动的所有可能组合,并将该组合的颜色存储在一个名为“ColorDictionary.cs”的脚本中。这是一个静态脚本,包含 100 多个 Color32 变量,我的其他脚本可以根据玩家滑动的内容进行抓取。这里有几个屏幕截图,可以更好地了解发生了什么。
这个很简单,得到的颜色是浅红色,需要玩家一起刷红圈和白圈
现在假设玩家不是很聪明,用蓝色滑动红色,下图演示了 UI 如何相应地更改颜色以显示玩家输入的颜色组合的输出。
这是通过检查玩家提交的颜色然后从 ColorDictionary 脚本中获取正确的组合来完成的。这是 ColorManager 的一个非常小的 sn-p 进行检查以计算并从字典中获取正确的颜色:
// YELLOW - RED
if (redActive) {
if (magentaActive) {
if (blackActive) { currentColor = ColorDictionary.tallPoppy; }
else if (whiteActive) { currentColor = ColorDictionary.salmon; }
else { currentColor = ColorDictionary.sunsetOrange; }
} else if (blueActive) {
if (blackActive) { currentColor = ColorDictionary.nutmeg; }
else if (whiteActive) { currentColor = ColorDictionary.muddyWaters; }
else { currentColor = ColorDictionary.brownRust; }
} else if (cyanActive) {
if (blackActive) { currentColor = ColorDictionary.yellowMetal; }
else if (whiteActive) { currentColor = ColorDictionary.indianKhaki; }
else { currentColor = ColorDictionary.teak; }
} else if (greenActive) {
if (blackActive) { currentColor = ColorDictionary.verdunGreen; }
else if (whiteActive) { currentColor = ColorDictionary.roti; }
else { currentColor = ColorDictionary.pirateGold; }
} else {
if (blackActive) { currentColor = ColorDictionary.chelseaGem; }
else if (whiteActive) { currentColor = ColorDictionary.texasRose; }
else { currentColor = ColorDictionary.flushOrange; }
}
}
这个 if 语句阶梯会持续一段时间(虽然只检查组合是否有活动颜色),并且只有当玩家点击一种颜色时才会激活它。
【问题讨论】: