在PyGame中,让精灵响应鼠标点击的标准方法是什么?
在我的事件循环中,有一些简单的事情:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game()
[...]
elif ( event.type == pygame.MOUSEBUTTONDOWN and
pygame.mouse.get_pressed()[0]):
for sprite in sprites:
sprite.mouse_click(pygame.mouse.get_pos())
关于它的一些问题:
提前谢谢
我通常给我的可点击对象一个点击函数,就像你的例子中那样。我将所有这些对象放在一个列表中,以便在调用click函数时进行简单的迭代。
当检查您按下的鼠标按钮时,使用事件的button属性。
我认为这是推荐的方法。点击只注册一次,所以它不会告诉你的精灵,如果用户是“拖动”一个按钮。对于MOUSEBUTTONDOWN事件设置为true,而对于MOUSEBUTTONUP设置为false的布尔值,可以很容易地做到这一点。有“可拖动”对象迭代以激活其功能。。。等等。
但是,如果不想使用事件处理程序,则可以让更新函数使用以下命令检查输入:
对于大型项目来说,这是一个坏主意,因为它可能会造成难以找到的bug。最好把事情放在一个地方。不过,像简单的街机游戏这样的小游戏,使用探索风格可能更有意义。
相关问题 更多 >
编程相关推荐