所以我和我的伙伴正在尝试制作一款与玩家对战的乒乓球游戏,但我们无法弄清楚如何让计算机失败。
我们已经完成了基本的工作并且工作正常,但计算机永远不会丢失。我们也尝试使用睡眠减慢计算机的速度,但是当桨叶移动缓慢时,球也会移动缓慢。
任何建议都会有所帮助! 感谢
答案 0 :(得分:5)
我们也试过放慢速度 电脑兜售使用睡眠,但是 每当桨叶移动缓慢时, 球也移动缓慢。
每次移动时,您需要通过将其移动较短的距离来使其变慢。
答案 1 :(得分:4)
在最初的乒乓球比赛中,球拍与球完全同步,也就是每当球下线时,球拍也是如此。显然,这将使游戏无法取胜,因此开发人员使用的解决方案是每隔几个周期跳过更新周期。
用外行人的话说,在每一帧上,你调整球拍的位置跟随球,除了第五,十,十五等。通过这样做,你的球拍似乎很好地接球,但有一些延迟反应。
答案 2 :(得分:1)
我认为计算机永远不会丢失,因为它“知道”球将要去哪里。在那种情况下,为什么你不能在一定比例的时间里把它送到错误的地方?
同样,如果你只是想减慢速度,而不是睡觉,你可以散布“不要去任何地方”的“动作”以及它认为正确的地方。因此,不是“向下1,向下1,向下1”,而是“向下1,向下0,向下0,向下1,向下0,向下0 ......”或者沿着这些线。
答案 3 :(得分:1)
我认为有一个像https://gamedev.stackexchange.com/这样的问题的游戏网站。但我的答案是尝试循环AI蝙蝠的最高速度。并使球棒短缺。 (只有在球位置的一半时才响应球位置。)
答案 4 :(得分:1)
计算机必须犯错误。问题是,错误必须是现实的。如果错误看起来过于人为,那么人类玩家会在一段时间后失去兴趣。人类必须相信错误的原因是他的好戏。
计算机可能会迟到。我的意思是,当人类击球时冻结。如果人类用边缘击球,情况尤其如此。
故意进展缓慢是不现实的。但有时候计算机可能会稍微慢一点,同时防守可以反弹的球。
当球击中击球时,计算机可能会对错误的一方作出反应(例如,上升而不是向上)。
计算机可能会在错误的位置等待一个球(关闭1),特别是如果球会反弹。
答案 5 :(得分:0)
当你使用Sleep时,整个程序会停止几毫秒。 你有游戏循环吗?如果是这样,请尝试减少翻译量,并且不要忘记进行标准化 加速度矢量。
cpuPadlle.Position += amount * acceleration;
其中: