gpt4 book ai didi

Javascript 贪吃蛇游戏(防止逆转,同时保持响应能力)

转载 作者:行者123 更新时间:2023-12-03 03:03:24 27 4
gpt4 key购买 nike

我有一个贪吃蛇游戏,除了一个非常严重的烦恼之外,已经“完成”了。

之前,我遇到过以下问题。说蛇往右走。如果玩家快速连续多次改变方向,例如先按下然后向左,那么蛇就会回到自身并反转方向。一旦我添加了碰撞检测代码,这将导致游戏结束并且玩家失败,因为蛇向内碰撞而与自身发生碰撞。这个问题之所以成为可能,是因为方向可以在一个时间间隔内多次改变,例如从右到下,然后从下到左。

通过添加一个 bool 值来解决此问题,该 bool 值将存储是否允许方向更改此间隔。如果在此时间间隔内方向尚未改变,则允许改变方向。如果这个时间间隔已经改变了,那么就必须等到下一个时间间隔才能再次改变。这可以防止蛇向内移动,因为它保证了蛇的方向在每个时间间隔只能改变一次。但这又产生了另一个问题,即在每个间隔中,第一个按键之后的每个按键都不会注册。

现在的问题是游戏不再有响应能力。如果蛇向右移动,则没有理由快速连续地向右侧发送垃圾邮件不会达到玩家的预期效果。就目前情况而言,第二个右侧有时不会注册,因为它按下得太快(与按下向下的时间间隔相同)。因此,通过以这种方式解决一个大问题,我又制造了另一个烦恼。我如何才能两全其美。我如何在恢复 react 能力的同时摆脱向内的可能性?

如果需要,我可以提供代码,但我认为即使在抽象中问题也很清楚。

最佳答案

听起来游戏要么在下一个时间间隔中按照新方向行动,要么方向会丢失,直到用户再次按下。

您尝试过在下一个方向排队吗?例如,在每个时间间隔,您可以检查队列以查看是否有新方向。如果有,改变方向。如果没有,则继续当前方向。

这可能会实现您想要的响应能力,同时仍然准确地满足用户的输入。

祝你好运

关于Javascript 贪吃蛇游戏(防止逆转,同时保持响应能力),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47276455/

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