Pygame:如何插入精灵而不是在Pygame中绘制我的角色



所以我在youtube上关注了一些关于如何使用Pygame创建Pacman的视频,它只展示了如何绘制一个简单的黄色圆圈,我试图用一个实际的精灵来替换这个简单的形状,但我无法使其工作这是我的代码,我有一个名为";玩家";在我画我的pacman角色的地方,我使用pygame的draw函数画一个简单的黄色圆圈

def draw(self):
pygame.draw.circle(self.app.screen,PLAYER_COLOUR, (int(self.pix_pos.x), int(self.pix_pos.y)),
self.app.cell_width//2-2)

然后我有另一个名为";app_class";其中我制作了一个新的";玩家";分类并将其放置在正确的位置

我试着用image.load代替draw,但没用。

模块pygame.draw仅包含用于绘制简单形状的函数。如果这不是你想要的,那么你必须使用另一个模块。

pygame.image.load是一个将图像从硬盘加载到主存储器的函数。你可以把它想象成把一个图像从你的电脑中输入到你的程序中。因此,除了提供图像之外,它什么也不做。

为了能够绘制图像,你必须明确地告诉pygame这样做。你可以通过调用Surface对象上的方法blit来完成,在你的情况下是屏幕。

因此,首先在程序开始时加载图像。你不应该在每个游戏循环中都调用这个函数,因为它很昂贵。只打一次电话。

my_image = pygame.image.load('path/to/my_image.jpg').convert()

convert方法只是使程序中的图像更有效率的一种方法。它将转换图像,使其具有正确的颜色格式。如果你排除它,你应该看不到任何区别,但如果你这样做,你会获得性能

你需要把它闪电般地("拖动"(到屏幕上。在你的情况下,你会做这样的事情:

def draw(self):
self.app.screen.blit(my_image, (x, y))

其中x和y是您希望图像位于的位置,或者更准确地说,是您希望左上角位于的位置。目前,x和y尚未定义,因此您必须自己定义它们。要么将它们设置为全局的,要么将它们放入类中并使用self.xself.y访问它们。

此外,图像可能不是您想要的大小。要修复它,你可以在加载后立即调整大小,就像这样:

width  = 50  # Or whatever size you want it to be.
height = 50
my_image = pygame.image.load('path/to/my_image.jpg').convert()
my_image = pygame.transform.scale(my_image, (width, height))

最新更新