pygame精灵/阻止平台碰撞

时间:2019-10-18 17:32:01

标签: python pygame collision

我当前的侧面碰撞无法正常工作,我不知道该怎么做。我想让屏幕上显示的所有块都成为我的主精灵的边框。这是一个平台游戏。如何定义边界?我有一个所有块坐标的数组。

def check_side_collision(self,a,aw,ah,b,bw,bh):# ffs how dis not working
    ax,ay = a[0],a[1]
    bx,by = b[0],b[1]

    #print('a: %s,%s,%s,%s' % (ax,ay,aw,ah))
    #print('b: %s,%s,%s,%s' % (bx,by,bw,bh))
    #print('gamespeed: %s' % self.gameSpeed)

    if ax + aw < bx:
      print(1)
      if by <= ay + ah <= by + bh:
        print(2)
        if ax + aw + self.gameSpeed > bx:
          print(ax + aw + self.gameSpeed, bx)
          return True
        else:
          return False
      elif by <= ay <= by + bh:
        print(3)
        if ax + aw + self.gameSpeed > bx:
          return True
        else:
          return False
      else:
        return False

    elif bx + bw < ax:
      print(-1)
      if by <= ay + ah <= by + bh:
        print(-2)
        if ax - self.gameSpeed < bx + bw:
          return True
        else:
          return False
      elif by <= ay <= by + bh:
        print(-3)
        if ax - self.gameSpeed < bx + bw:
          return True
        else:
          return False
      else:
        return False
    else:
      return False

0 个答案:

没有答案