大家好,所以我目前的侧面碰撞无法正常进行,我不知道该如何做。我想让屏幕上显示的所有块都成为我的主精灵的边框。这是一个平台游戏。如果有人可以帮助我建立一个很好的边界,那么我将拥有所有块坐标的数组。
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
我宁愿有人帮我做到这一点,但是如果有人为我提供了代码,那总比没有好。预先感谢。
查看此答案:PyGame Collision?
Rect类具有colliderect(rect1,rect2)函数。