我会让他触摸平台,这样fall()
就不会再次被调用。
如果我的角色正在剪裁平台的矩形,那么我的 jump() 函数可能会受到阻碍,因为它可能会认为他一起飞就降落了。
在 jump() 函数中,当它移动字符时,使它不能停止,直到它移动最少 x 个像素。
您可以通过False
在开头设置一个布尔值并在遍历 x 个像素后jump()
设置一个计数器来实现此目的。True
确保 x 足以让角色停止剪裁平台,而不是太多,以免与其他物体发生碰撞。
一旦它移动了 x 个像素,则允许开始碰撞测试,以查看角色何时再次撞到某物。
例如:
MINIMUM_DISTANCE = x
# ^ how many pixels you want to move to stop clipping
count = 0 #used for counting
def jump():
global count
in_air = False
#do your movements here, and increase count each time you move a pixel
if count >= MINIMUM_DISTANCE: in_air=True
if in_air:
#collision detection here
#once there is a collision:
if collision:
count = 0
return
并且只是为了将来参考,最好发布您拥有的代码,即使它不是与代码相关的错误。只是为了让我们可以看到并感受你的方法
希望我能帮上忙