账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    【Python】《python从入门到实践》《外星人入侵》中捕获鼠标左键右键的操作失败
    84
    0
    问题代码:if event.key == pygame.K_RIGHT:elif event.key == pygame.K_LEFT:import sysimport pygamepygame.KEYDOWN=1026def check_events(spaceship): for event in pygame.event.get(): # print(pygame.K_RIGHT,pygame.K_LEFT,event.type,pygame.KEYDOWN) if event.type==pygame.QUIT: sys.exit() elif event.type==pygame.KEYDOWN: if event.key == pygame.K_RIGHT: spaceship.rect.centerx+=100 elif event.key == pygame.K_LEFT: spaceship.rect.centerx-=100def update_screen(ai_sett,screen,spaceship): screen.fill(ai_sett.bg_color) spaceship.blitme()import pygameimport settimport shipimport game_func as gfdef run_game(): pygame.init() ai_sett=sett.Settings() screen=pygame.display.set_mode((ai_sett.screen_width,ai_sett.screen_height)) spaceship=ship.Ship(screen) pygame.display.set_caption("Alien invasion") while True: gf.check_events(spaceship) gf.update_screen(ai_sett,screen,spaceship) pygame.display.flip()run_game()import pygameclass Ship(): def __init__(self,screen): self.screen=screen self.image=pygame.image.load("spaceship.bmp") self.rect=self.image.get_rect() self.screen_rect=screen.get_rect() self.rect.centery=self.screen_rect.centery self.rect.centerx=self.screen_rect.centerx self.rect.bottom=self.screen_rect.bottom def blitme(self): self.screen.blit(self.image,self.rect)class Settings(): def __init__(self): self.screen_width=1400 self.screen_height=800 self.bg_color=(148,214,246)报错 'Event' object has no attribute 'key'本人的疑惑:1.type,keydown,k_right等值是怎么赋值的,在我为给keydown赋值之前点一下鼠标后返回的type值是不等于keydown的2.本人认为event.key()应该是函数库里的变量来捕捉鼠标操作的,就是鼠标一点它就会返回一个值,但为何实际上我一点鼠标它就报错
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 儡O_o 普通会员 1楼

      在Python中,你可以使用pyautogui库来捕获鼠标左键右键的操作。以下是一个简单的示例:

      ```python import pyautogui

      捕获鼠标左键的操作

      x, y = pyautogui.locate('left')

      捕获鼠标右键的操作

      x, y = pyautogui.locate('right')

      print('鼠标左键的位置为:', x) print('鼠标右键的位置为:', y) ```

      在这个示例中,我们首先导入了pyautogui库。然后,我们使用pyautogui.locate函数来捕获鼠标左键和右键的操作。这两个函数的参数是目标位置的字符串,所以你需要提供一个与目标位置匹配的字符串。

      请注意,你需要确保你的系统中已经安装了pyautogui库。如果没有,你可以使用pip来安装:

      bash pip install pyautogui

      另外,pyautogui的定位函数可能并不总是准确的,因为它可能会受到鼠标的位置、屏幕的分辨率、滚动方向等因素的影响。如果你的系统中有大量的滚动条,或者屏幕的分辨率很高,那么你可能需要调整你的代码来适应这些情况。

    • じ☆ve瑶═╬ 普通会员 2楼

      在Python中,你可以使用pyautogui库来捕获鼠标左键右键的操作。以下是一个简单的示例:

      ```python import pyautogui

      捕获鼠标左键的操作

      x, y = pyautogui.locate('left')

      捕获鼠标右键的操作

      x, y = pyautogui.locate('right')

      print('鼠标左键的位置为:', x) print('鼠标右键的位置为:', y) ```

      在这个示例中,我们首先导入了pyautogui库。然后,我们使用pyautogui.locate函数来捕获鼠标左键和右键的操作。这两个函数的参数是目标位置的字符串,所以你需要提供一个与目标位置匹配的字符串。

      请注意,你需要确保你的系统中已经安装了pyautogui库。如果没有,你可以使用pip来安装:

      bash pip install pyautogui

      另外,pyautogui的定位函数可能并不总是准确的,因为它可能会受到鼠标的位置、屏幕的分辨率、滚动方向等因素的影响。如果你的系统中有大量的滚动条,或者屏幕的分辨率很高,那么你可能需要调整你的代码来适应这些情况。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部