如何在pygame中链接多个精灵?

时间:2019-05-19 18:46:38

标签: python pygame

在pygame游戏中,我一个接一个地挥舞几个sprite时遇到了困难。

我目前正在尝试制作类似《马里奥兄弟》的游戏,希望我可以在角色移动时为其角色赋予生气。我尝试使用一些时间命令,但在理解如何使其工作方面有困难。这是我用来移动角色的功能:

def move(self,keys):  
    if self.isJumping:
        self.jump()
        if keys[pygame.K_LEFT]:
            self.orientation = "Left"
            if not(self.x - vel<0) and not self.collision_with_walls():
                self.rect.x -= vel
                camera.update(player)
                self.draw_player()
        if keys[pygame.K_RIGHT]:
            self.orientation = "Right"
            if not self.collision_with_walls():
                self.rect.x += vel
                camera.update(player)
                self.draw_player()
    else:
        self.gravity()
        if keys[pygame.K_LEFT]:
            self.orientation = "Left"
            if not(self.x - vel<0) and not self.collision_with_walls():
                self.rect.x -= vel
                camera.update(player)
                self.draw_player()
        if keys[pygame.K_RIGHT]:
            self.orientation = "Right"
            if not self.collision_with_walls():
                self.rect.x += vel
                camera.update(player)
                self.draw_player()
        if (not self.isJumping):
            if keys[pygame.K_DOWN]:
                self.orientation = "Down"
                if not ((self.y+vel)>HEIGTH_display-height)and not self.collision_with_walls():
                    self.rect.y += vel
                    camera.update(player)
                    self.draw_player()     
            if keys[pygame.K_UP]:
                if self.collision_with_ground:
                    self.isJumping = True
        return x,y

例如,当他向右行走时,他应该首先将右臂放在他的面前,然后0.5秒后另一个精灵显示他在同一点上的手臂,然后再0.5秒后将其放在他的左臂上在他的前面……等等,只要他走路。

现在,按照我的尝试,我的马里奥要么一直走着一个精灵,要么我的游戏甚至无法启动。

0 个答案:

没有答案