我一直在从事这款游戏,但是在碰撞检测方面我有一个疑问。我可以检查碰撞是否让它返回True:

例:

def collide(self, EnemyTank):
     tank_collision = pygame.sprite.collide_rect(self.rect, EnemyTank.rect)
     if tank_collision == True:
          return True


然后使其执行以下操作:

if player.collide == True:
     e_tank_x += 0


我是编程新手,所以请您忍受,我正在竭尽全力,任何意见或建议也将不胜感激。

最佳答案

我不是pygame的专家,但这听起来很合理。我只是在您的初始职能中取消中间人:

def collide(self, EnemyTank):
      return pygame.sprite.collide_rect(self.rect, EnemyTank.rect)


并且您需要调整使用的测试,因为您要实际检查碰撞,而在编写它时,只需测试函数是否存在碰撞;)
您还可以使用隐式测试,删除一些不必要的字符(最好的方法是尽早学习)

if player.collide(EnemyTank):
     do your action here


祝您游戏顺利!

关于python - 碰撞矩形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13521865/

10-11 08:54