python - 如何使用鼠标左键而不是空格键导致此事件发生?
问题描述
我目前正在我的游戏中实现一个功能,其中武器会短暂地出现在角色面前,然后消失,作为实施近战战斗的一种手段。我一直在使用空格键来召唤武器,但我想改用鼠标左键。我一直无法找到如何做到这一点。
这是代码:
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( )" 但这并没有做任何事情。代码仍然运行,但没有武器。
综上所述,如何使用鼠标左键输入来执行上面的代码呢?
解决方案
而不是使用pygame.KEYDOWN
,使用pygame.MOUSEBUTTONDOWN
。您还必须更改event.key == pygame.K_SPACE
为event.button == 1
. 其他鼠标动作有:
1 - left click
2 - middle click
3 - right click
4 - scroll up
5 - scroll down
如果需要鼠标位置,可以使用event.pos
. 其他事件信息可以在pygame 文档中找到
推荐阅读
- sublimetext3 - SublimeText 3 软件包安装错误
- c# - 如何将“XX,XXX”替换为“XX XXX”?
- javascript - 在选择器中转义反斜杠
- java - 如何在没有任何背景的情况下使用 android 启动器图标
- oracle - Sqlldr tab delim 文件加载问题
- angular - 通过在 typescript 中调用方法打开 bootstrap 4 模态
- java - NoSuchMethodError 当不直接调用方法,而是服务方法时
- formula - 将整数值分配给相对值列表
- c# - 单元测试时无法调试 dll - 未命中断点且无法更改属性中的配置
- asp.net - 无法在 asp .net core signalR 中播放示例客户端到服务器流式传输示例