我正尝试让我的角色在与另一个角色达到一定距离后更改图像。基本上,如果角色距离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会继续左右移动而不是切换到攻击模式。
答案 0 :(得分:0)
我知道了-我将边界从50更改为200。50个单位的范围太小,无法及时显示剪辑。