Python 让我的球员划桨成一个形象

Python 让我的球员划桨成一个形象,python,pygame,Python,Pygame,我正试图把我的球员桨变成一个真实的形象。然而,我不知道该怎么做。我目前正在PlayerPaddle类的init中执行图像分配选项 class Paddle(object): def __init__(self, screen_size, XCenter, YCenter, height, width, color): self.screen_size = screen_size self.XCenter = XCenter self.Y

我正试图把我的球员桨变成一个真实的形象。然而,我不知道该怎么做。我目前正在PlayerPaddle类的init中执行图像分配选项

class Paddle(object):

    def __init__(self, screen_size, XCenter, YCenter, height, width, color):

        self.screen_size = screen_size
        self.XCenter = XCenter
        self.YCenter = YCenter
        self.height = height
        self.width = width 
        self.color = color 


        #Create the paddle surface on the sides of the screen
        self.rect = pygame.Rect(0, self.YCenter - self.height//2, self.width, self.height)


    def draw(self, screen):
        pygame.draw.rect(screen, self.color, self.rect, 0)
        pygame.draw.rect(screen, BLACK, self.rect, 1)


class PlayerPaddle(Paddle):

    def __init__(self, screen_size, XCenter, YCenter, height, width, color):

        super().__init__(screen_size, XCenter, YCenter, height, width, color)

        self.speed = 5
        self.direction = 0
        self.score = 0

        self.image = pygame.image.load("naruto.png")
        self.imagerect = self.image.get_rect()


    def draw(self, screen):

        super().draw(screen)
        screen.blit(self.image, self.imagerect)

现在,我只是在右上角画了一张照片。我该如何解决这个问题呢?

只要保持
self.rect
计算在桨类中的状态,并更改这一行:

screen.blit(self.image, self.imagerect)


使用原样的代码,您只是告诉pygame在“IAMGERCT”给定的位置绘制图像-但是您的imagerect只有图像的数据,而不是屏幕上的图像位置。因此,它总是在(0,0)处您必须更改
self.rect.y
self.imagerect.y
来移动它。顺便说一下:
rect
有许多有用的字段,比如
center
centerx
,centery`-这样您就可以在适当的位置创建
rect
(0,0)-
self.rect=pygame.rect(0,0,self.width,self.height
并使用
self.rect.centery=self.YCenter
。顺便说一下:通常我不会创建
self.YCenter
self.YCenter
self.YCenter
,因为我在self.rect.centery`中有它,当我更改
self.rect.y
self.rect.left
瑟斯。
screen.blit(self.image, self.rect)