使用字符串显示平台(Pygame)

2024-04-26 18:09:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有麻烦让一个平台显示在我有'p'字符串的区域。我尝试在pygame中创建一个级别,使用字符串而不是为每个平台设置坐标。这是一个样本。。。在

class Level_01(Level):

    def __init__(self, player):

        self.background = forest_bg

        Level.__init__(self, player)

        platforms = []

        x = y = 0
        level = ['            ',
                 'P           ',
                 '            ',
                 '  P         ',
                 '            ',
                 'PPPPPPPPPPPP',]

        # build the level
        for row in level:
            for col in row:
                if col == 'P':
                    P = Platform(x, y)
                    platforms.append(P)
                x += 90
            y += 90
            x = 0

这是整个项目。。。在

^{2}$

Tags: 字符串inself区域forinitcol平台
1条回答
网友
1楼 · 发布于 2024-04-26 18:09:44

您的问题是因为您使用argumenst x,y创建{}

 P = Platform(x, y)

但你对这些信息什么也不做。在

您必须在__init__中记住这些值

^{pr2}$

或更短

self.rect = self.image.get_rect(x=x, y=y)

你在Player()类中也有同样的问题


顺便说一句:最好在所有类中使用self.rect.xself.rect.y,而不是{},self.y,因为你可以用它来检查碰撞-player.rect.colliderect(some_element.rect)或{}

即使是pygame.sprite.Group()也希望所有元素在self.rect中都有位置和大小,因为它使用self.image和{}来绘制它们。在

相关问题 更多 >