Pygame不会根据角色属性更改我的精灵

时间:2019-04-28 19:27:26

标签: pygame

我正尝试让我的角色在与另一个角色达到一定距离后更改图像。基本上,如果角色距离50个或更多单位,则将她设置为行走模式,但如果距离少于50个单位,则将其设置为攻击模式,并具有其相应的图像/功能集。

我尝试了while循环和添加其他条件

if sif.x - cap.x > 50 and sif.collideCount == 0:
    sif.moveLeft() #cap is the other character
elif cap.x - sif.x > 50 and sif.collideCount == 0:
    sif.moveRight()
elif cap.x - sif.x <= 50 and sif.collideCount == 0:
    sif.punch = True
    sif.right = True
    sif.punchRight()
    if sif.rect.colliderect(cap.rect):
        sif.collideCount = 1
        sif.collided = True
if sif.collided:
    sif.moveLeft()
    if sif.x < 30:
        sif.moveRight()
        sif.collideCount = 0
        sif.collided = False

打孔功能

def punchRight(self):
    self.img = pygame.image.load('sifpunch.png')
    self.punch = True
    self.right = True
    self.left = False
    self.x += self.vel
    self.rect.x = self.x
    screen.blit(self.img, (self.x,self.y))

包含更新图像的绘制函数:

def draw(self, screen):
        elif self.punch and self.right:
            self.img = pygame.image.load('sifpunch.png')
            screen.blit(self.img, (self.x,self.y))

Pygame永远不会将sif.punch设置为True,因此Sif会继续左右移动而不是切换到攻击模式。

1 个答案:

答案 0 :(得分:0)

我知道了-我将边界从50更改为200。50个单位的范围太小,无法及时显示剪辑。