我怎样才能改变我的 pygame 桨从鼠标定位从键移动

问题描述

def move(self):
    #reset movement direction
    self.path = 0
    key = pygame.key.get_pressed()
    if key[pygame.K_LEFT] and self.rect.left > 0:
        self.rect.x -= self.speed
        self.path = -1
    if key[pygame.K_RIGHT] and self.rect.right < screenw:
        self.rect.x += self.speed
        self.path = 1

我正在让它使用按键,但我无法将其更改为鼠标定位

解决方法

只需通过鼠标光标的 x 坐标设置 paddle 的 centery 属性。鼠标手杖的位置可以通过 Playground 获得。 pygame.mouse.get_pos 提供了很多虚拟属性,可以用来获取和设置矩形的位置和大小。

mouse_pos = pygame.mouse.get_pos()
self.rect.centery = mouse_pos[1]

如果想让拨片向鼠标方向缓慢移动,则需要计算拨片中心到鼠标的距离:

mouse_buttons = pygame.mouse.get_pressed()
if any(mouse_buttons)
    mouse_x,mouse_y = pygame.mouse.get_pos()
    dy = mouse_y - self.rect.centery
    if dy < 0:
        self.rect.y -= min(-dy,self.speed)
        self.path = -1
    elif dy > 0:
        self.rect.y += min(dy,self.speed)
        self.path = 1