首页 > 解决方案 > 如何使用鼠标左键而不是空格键导致此事件发生?

问题描述

我目前正在我的游戏中实现一个功能,其中武器会短暂地出现在角色面前,然后消失,作为实施近战战斗的一种手段。我一直在使用空格键来召唤武器,但我想改用鼠标左键。我一直无法找到如何做到这一点。

这是代码:

if event.type == pygame.KEYDOWN and self.hasShovel == True:
            if event.key == pygame.K_SPACE:
                if self.player.facing == 'up':
                    shovel(self, self.player.rect.x, self.player.rect.y - TileSize)
                    
                if self.player.facing == 'down':
                    shovel(self, self.player.rect.x, self.player.rect.y + TileSize)
                    
                if self.player.facing == 'left':
                    shovel(self, self.player.rect.x - TileSize, self.player.rect.y)
                    
                if self.player.facing == 'right':
                    shovel(self, self.player.rect.x + TileSize, self.player.rect.y)

我假设我需要使用 pygame.mouse.get_pressed(),我通过删除“if event.key == pygame.K_SPACE”而不是“pygame.KEYDOWN”来实现“pygame.mouse.get_pressed( )" 但这并没有做任何事情。代码仍然运行,但没有武器。

综上所述,如何使用鼠标左键输入来执行上面的代码呢?

标签: pythoninputpygamemouseeventmouse

解决方案


而不是使用pygame.KEYDOWN,使用pygame.MOUSEBUTTONDOWN。您还必须更改event.key == pygame.K_SPACEevent.button == 1. 其他鼠标动作有:

1 - left click
2 - middle click
3 - right click
4 - scroll up
5 - scroll down

如果需要鼠标位置,可以使用event.pos. 其他事件信息可以在pygame 文档中找到


推荐阅读