pygame sprite / block平台碰撞

问题描述 投票:0回答:1

大家好,所以我目前的侧面碰撞无法正常进行,我不知道该如何做。我想让屏幕上显示的所有块都成为我的主精灵的边框。这是一个平台游戏。如果有人可以帮助我建立一个很好的边界,那么我将拥有所有块坐标的数组。

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

我宁愿有人帮我做到这一点,但是如果有人为我提供了代码,那总比没有好。预先感谢。

python pygame collision
1个回答
0
投票

查看此答案:PyGame Collision?

Rect类具有colliderect(rect1,rect2)函数。

© www.soinside.com 2019 - 2024. All rights reserved.