Codea / Lua 乒乓球游戏中的 CPU 对手不准确。

我最近用Lua(Codea)设计和编程了一个乒乓球游戏,可以在多人游戏和单人游戏中玩,其中单人游戏需要对抗CPU。

我的问题是,我可以让CPU完美地打乒乓球bat_cpu = ball_y,但这样不会让游戏变得更有趣。

因此,我设计了一个简单的不精确系统来计算乒乓球将碰到CPU球拍的位置:

bat_cpu = ball_y + inaccuracy

其中,在前面定义了不准确性为:

inaccuracy = math.random(-40,40)

但球拍仍然完全跟随ball_y移动,我想使它犯错,并且不要移动得太快。

有没有人知道如何模拟CPU球拍,使其出现一些错误(高速度,准确度等)?

点赞
用户1442917
用户1442917

你没有提及这个计算什么时候应用,但很可能是每一帧都会执行的。这意味着你可能会引入这些不准确的因素,但它们会频繁地在 0 均值附近改变,以至于你根本看不到其效果。

你可以对每次打击进行偏移的随机计算,例如 bias = math.random(-20, 20),然后 inaccuracy = bias + math.random(-40, 40);然后在每次打击时重新设置 bias

你也可以移动目标:计算 CPU 的击中位置,然后随机移动该目标。对于每一帧,你需要根据球的位置插值出你想让球拍处于的位置,并且由于球拍的目标是错误的,它靠近目标的方式也会不准确,这是你想要的。

2013-01-25 20:09:27