Python 在Pygame中移动两个矩形

Python 在Pygame中移动两个矩形,python,pygame,Python,Pygame,我正在尝试制作一个游戏,但遇到了一个问题…我无法移动player2的矩形。这两个矩形都来自同一个类 import pygame,sys #........ class player(object): def __init__(self,determination,x1,x2): if determination: self.rect = pygame.rect.Rect([x1,0,40,5]) elif determination

我正在尝试制作一个游戏,但遇到了一个问题…我无法移动player2的矩形。这两个矩形都来自同一个类

import pygame,sys
#........
class player(object):
    def __init__(self,determination,x1,x2):
        if determination:
            self.rect = pygame.rect.Rect([x1,0,40,5])
        elif determination == 0:
            self.rect = pygame.rect.Rect([x2,475,40,5])
    
    def draw(self,surface,color):
            pygame.draw.rect(screen,color,self.rect,1)

    def handle_keys(self,determination):
        for event in pygame.event.get():
            if event.type ==  pygame.KEYDOWN:
                if event.key == pygame.K_a and determination:
                    self.rect.left = self.rect.left -3
                    self.rect.right = self.rect.right - 3
                elif event.key == pygame.K_d and determination:
                    self.rect.right = self.rect.right + 3
                    self.rect.left = self.rect.left+ 3
                elif event.key == pygame.K_LEFT and determination == 0:
                    self.rect.left = self.rect.left -3
                    self.rect.right = self.rect.right - 3
                elif event.key == pygame.K_RIGHT and determination == 0:
                    self.rect.right = self.rect.right + 3
                    self.rect.left = self.rect.left+ 3


    player1.handle_keys(1)
    player2.handle_keys(0)
    player1.draw(screen,color1)
    player2.draw(screen,color2)
    #.......
获取所有消息并将其从队列中删除。如果在多个事件循环中调用了
pygame.event.get()
,则只有一个循环接收事件,但并非所有循环都接收所有事件。因此,一些活动似乎被错过了

获取一次事件并在多个循环中使用它们,或者将列表或事件传递给处理它们的函数和方法:

class播放器(对象):
# [...]
def处理键(自我、决定、事件列表):
对于事件列表中的事件:
# [...]
为True时:
event_list=pygame.event.get()
# [...] 
播放器1.处理按键(1,事件列表)
播放器2.处理按键(0,事件列表)
# [...]
获取所有消息并将其从队列中删除。如果在多个事件循环中调用了
pygame.event.get()
,则只有一个循环接收事件,但并非所有循环都接收所有事件。因此,一些活动似乎被错过了

获取一次事件并在多个循环中使用它们,或者将列表或事件传递给处理它们的函数和方法:

class播放器(对象):
# [...]
def处理键(自我、决定、事件列表):
对于事件列表中的事件:
# [...]
为True时:
event_list=pygame.event.get()
# [...] 
播放器1.处理按键(1,事件列表)
播放器2.处理按键(0,事件列表)
# [...]

问题解决了吗?问题解决了吗?