Python 在Pygame中移动两个矩形
我正在尝试制作一个游戏,但遇到了一个问题…我无法移动player2的矩形。这两个矩形都来自同一个类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
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,事件列表)
# [...]
问题解决了吗?问题解决了吗?