2024-06-01 20:32:33 发布
网友
这就是我所尝试的:
if len(wormCoords) > 2: time.sleep(4) del wormCoords[-1]
但是整个游戏(我在做一个简单的“蛇”游戏)会在移除蛇的最后一部分之前休眠4秒。计划是每4秒把蛇的最后一部分去掉,这样你就必须不断地吃苹果(当你吃的时候,蛇就会长一个),否则你会死(蛇会挨饿挨饿)。在
完整的代码可以在这里找到:http://inventwithpython.com/pygame/chapter6.html 但我正在做一些改变。在
查看pygame.time.set_timer函数。这允许您每隔几毫秒触发一个事件,您可以使用典型的事件处理机制(就像处理鼠标移动、键盘、绘图等)来处理。有关处理事件的更多信息,请阅读pygame.event文档。在
如果您不希望应用程序的其余部分在调用“sleep”时暂停,则需要使用线程(请参见http://docs.python.org/library/threading.html)。因为“wormCoords”变量需要在线程之间共享,所以在更新它时需要小心,以避免出现争用情况。在
这里要做的正确的事情是在设置代码中设置一个计时器事件(在HEAD = 0行之后)
HEAD = 0
SHRINKSNAKE = pygame.USEREVENT+0
这将进入runGame函数中direction = RIGHT之后
runGame
direction = RIGHT
在runGame中的事件处理循环中,elif event.type == KEYDOWN:之前,elif应该排成一行
elif event.type == KEYDOWN:
elif
elif event.type == SHRINKSNAKE: if len(wormCoords) > 2: del wormCoords[-1]
有关详细信息,请查看^{}上的文档
查看pygame.time.set_timer函数。这允许您每隔几毫秒触发一个事件,您可以使用典型的事件处理机制(就像处理鼠标移动、键盘、绘图等)来处理。有关处理事件的更多信息,请阅读pygame.event文档。在
如果您不希望应用程序的其余部分在调用“sleep”时暂停,则需要使用线程(请参见http://docs.python.org/library/threading.html)。因为“wormCoords”变量需要在线程之间共享,所以在更新它时需要小心,以避免出现争用情况。在
这里要做的正确的事情是在设置代码中设置一个计时器事件(在
HEAD = 0
行之后)这将进入
^{pr2}$runGame
函数中direction = RIGHT
之后在
runGame
中的事件处理循环中,elif event.type == KEYDOWN:
之前,elif
应该排成一行有关详细信息,请查看^{} 上的文档
相关问题 更多 >
编程相关推荐