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
そして、将来の参考のために、コード関連のエラーでなくても、持っているコードを投稿することをお勧めします。あなたのアプローチを見て、感じてもらうためです
私が助けることができることを願っています