大家好,我想知道我是否可以对此有所帮助。我正在学习python中的课程,并尝试将其合并到当前的uni项目中。

所以下面是该类的代码以及它使用的一些变量

class Asteroid():
    def __init__(self, char, startX, startY):
        self.char = char
        self.startX = startX
        self.startY = startY
        self.drawChar()

    def drawChar (self):
        self.space = pygame.image.load (self.char)
        self.space = self.space.convert_alpha()
        gameDisplay.blit(self.space,
            (random.randint(0,display_width),
            random.randint(0,display_height)))


基本上,此类包含了我需要在“ Asteroids”中加载的所有数据。

以下是实际使用该类的主要代码的一部分:

Asteroid(random.choice(asteroid),200,300 )


以下也是变量asteroid的代码:

asteroid = [
    'Sprites/Asteroid1.png',
    'Sprites/Asteroid2.png',
    'Sprites/Asteroid3.png']


因此,发生的实际问题是,当我运行代码时,小行星会发火到表面,但是它们到处都是跳跃。不仅如此,而且正在给不同的小行星上水,而不是选择一颗小行星。为什么会这样呢?

另外,小行星也有白色背景,我尝试将其转换,但这无济于事。

最佳答案

因为你告诉。代码

gameDisplay.blit(self.space,
            (random.randint(0,display_width),
             random.randint(0,display_height)))


字面意思是“将图像随机放置在显示器上”。具体来说,random.randint(0,...)选择从零到屏幕大小的随机位置。

请记住,每次需要更新屏幕时(不仅是在您启动游戏时),都会调用此显示代码。要显示静态坐标,请将坐标设为静态:

gameDisplay.blit(self.space, (self.startX, self.startY))

关于python - pygame |流血的图像不断在各处跳跃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40554286/

10-12 18:15