gpt4 book ai didi

iphone - 游戏设计 : handling different game types?

转载 作者:行者123 更新时间:2023-11-28 20:22:58 26 4
gpt4 key购买 nike

我很好奇是否有一个很好的策略来处理运行相同主游戏循环的游戏中的各种游戏类型?换句话说,我有一个具有三种不同游戏类型的游戏。每种类型之间只有一些细微差别,因此它们目前使用相同的循环/类运行。一种是“在时间用完之前你能得到多少个X”,另一种是“你需要多长时间才能捕获10个X”,最后一种是“练习/无限时间”游戏类型。现在我的策略是运行 if, then, else 检查游戏的所有不同部分并为每种游戏类型执行适当的逻辑。

if (gameType == INFINITE)
{...}
else if (gameType == TIMED)
{...}
else
{...}

这对我来说似乎错得离谱,而且效率低下。我不想让 CPU 因所有这些不必要的检查而陷入困境,因为我似乎可以进行一次检查并继续进行。我也不想复制粘贴我的所有类(class),只对每个类(class)进行微小的更改。有什么好的方法吗?

最佳答案

处理该问题的一种方法是创建屏幕管理器系统。这实质上意味着您有一个带有更新和绘制操作的抽象类。然后,您拥有的每个游戏(屏幕)都继承自此,允许每个游戏(屏幕)都有自己的更新/绘制行为。最终你需要有一个 if-else 或 switch 语句来决定绘制/更新哪个。最小化这种情况的一种方法是使用抽象类型的变量跟踪当前“屏幕”,然后您可以多态地将需要更新/绘制的任何屏幕分配给该变量。然后,当您调用更新或在当前屏幕上绘制时,您不需要知道它的具体类型。

那里有很多例子,一个不错的 XNA 可以在以下位置找到: http://xbox.create.msdn.com/en-US/education/catalog/sample/game_state_management

这个想法是完全可以转移的。大多数人使用此系统来添加菜单屏幕和其他东西,但没有理由不能将其用于您的目的。

关于iphone - 游戏设计 : handling different game types?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com