我正在为Game Boy Advance编写一款游戏,并且我正在用二叉搜索树的形式实现基本的AI。游戏中有一个人类玩家和一个电脑玩家。我需要找到一种方法来判断人类玩家攻击电脑的攻击性有多强。人类玩家会按下按钮进行攻击(并且必须在电脑的一定半径范围内),所以我的第一个想法是查看攻击次数与我的主while
循环迭代次数的比率。但这似乎不是一个好方法,因为这个数字会取决于帧率,而帧率可能会波动。 各位有什么更好的方法吗?
回答:
为什么不直接记录人类玩家能够攻击电脑玩家的次数呢? 我的意思是,你显然需要检查他是否在攻击范围内,所以为什么不检查他是否在攻击范围内,如果他在攻击范围内,就递增 could_have_attacked
计数器。 然后,如果他真的攻击了,就递增一个 attacked
计数器。 这样你就可以比较人类玩家攻击的频率和他有攻击机会的频率了。
或者,比较他在攻击范围内的时间与他不在攻击范围内的时间,或者更普遍地跟踪玩家之间的平均距离。 更具攻击性的玩家可能会比被动玩家更靠近他们的对手。
你最好的选择可能是结合不同的方法。 保持几种不同的测量方法,并尝试几种不同的方法来权衡这些方法,并使用大量的游戏测试来选择哪一种更好。