我會他觸摸平臺,以便fall()
不再被調用。
如果我的角色正在剪裁平臺的矩形,那麼我的jump()函數可能會受到阻礙,因爲它可能認爲他一旦起飛就會降落。
在jump()函數中,當它移動字符時,使它不能停止,直到它移動至少x個像素爲止。
您可以通過在jump()
開始處設置一個布爾值爲False
並在穿過x像素後有一個計數器使其成爲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
而只是以供將來參考,它能夠更好地發佈你的代碼,即使它不是一個代碼相關的錯誤。只是這樣我們可以看到,並得到你的方法的感覺
希望我可以幫助
對我有意義。謝謝! (我意識到這是一個非常遲緩的迴應,哈哈) –
@MikeRobideau哈哈不用擔心遲到。如果有幫助,記得接受答案,以免人們認爲它仍然需要回答! – hammythepig