我最近在lua(codea)设计并编写了一个乒乓球游戏;您可以在多人游戏和单人游戏中与CPU对战。
我的问题是,我可以让CPU完美地玩bat_cpu = ball_y
,但这不会让游戏变得很有趣。
因此我制作了一个简单的不准确系统来计算球击中CPU蝙蝠的位置:
bat_cpu = ball_y + inaccuracy
以前将不准确定义为:
inaccuracy = math.random(-40,40)
但蝙蝠仍然完全遵循ball_y,我希望它犯错误,而不是那么快。
有没有人知道如何模拟CPU蝙蝠所以它会犯一些错误(高速,准确等)。
答案 0 :(得分:2)
您没有提及何时应用此计算,但可能会在每帧的基础上完成。这意味着您可能会应用这些不准确之处,但它们会在0左右频繁更改,这意味着您根本看不到效果。
您可以对每次点击的随机计算产生偏差:例如,bias = math.random(-20, 20)
然后inaccuracy = bias + math.random(-40, 40)
;然后,您可以在每次点击时重置bias
。
您还可以移动目标:计算CPU命中的位置,并随机移动目标。对于每个帧,您需要根据您想要击球的球位置进行插值,并且因为击球目标是错误的,所以它对目标的接近也是不准确的。