衝突検出が正しく機能していません

プラスーンジャ

私はpygameモジュールとmathモジュールを使用してPythonでゲームをプログラミングしていました。衝突検出を行うためにこれらのコードを作成しました(プレーヤーに衝突させたい5つの障害物を作成しました)が、問題はゲームのプレイ中に発生し、機能する場合と機能しない場合がありました。

これらは私が定義した衝突関数です

def collide1(binX, binY, playerX, playerY):
    distance = math.sqrt(math.pow(binX - playerX, 2) + math.pow(binY - playerY, 2))
    if distance == 27:
        return True
    else:
        return False


def collide2(snowX, snowY, playerX, playerY):
    distance = math.sqrt(math.pow(snowX - playerX, 2) + math.pow(snowY - playerY, 2))
    if distance == 27:
        return True
    else:
        return False


def collide3(glacierX, glacierY, playerX, playerY):
    distance = math.sqrt(math.pow(glacierX - playerX, 2) + math.pow(glacierY - playerY, 2))
    if distance == 27:
        return True
    else:
        return False


def collide4(boardX, boardY, playerX, playerY):
    distance = math.sqrt(math.pow(boardX - playerX, 2) + math.pow(boardY - playerY, 2))
    if distance == 27:
        return True
    else:
        return False


def collide5(iceX, iceY, playerX, playerY):
    distance = math.sqrt(math.pow(iceX - playerX, 2) + math.pow(iceY - playerY, 2))
    if distance == 27:
        return True
    else:
        return False

whileループで

# Collision Detection
collision1 = collide1(binX, binY, playerX, playerY)
collision2 = collide2(snowX, snowY, playerX, playerY)
collision3 = collide3(glacierX, glacierY, playerX, playerY)
collision4 = collide4(boardX, boardY, playerX, playerY)
collision5 = collide5(iceX, iceY, playerX, playerY)

if collision1:
    print("You have collided!")
elif collision2:
    print("You have collided!")
elif collision3:
    print("You have collided!")
elif collision4:
    print("You have collided!")
elif collision5:
    print("You have collided!")

どこが間違っているのか教えてください。

Rabbid76

実際には、プレイヤーが障害物に触れているかどうかを確認しているだけですが、プレイヤーが障害物と交差すると衝突を見逃します。distance <= 27ではなく、を評価する必要がありdistance == 27ます。さらに、衝突テストには1つの関数を実装するだけで十分です。

def collide(x1, y1, x2, y2):
    distance = math.sqrt(math.pow(x1 - x2, 2) + math.pow(y1 - y2, 2))
    if distance <= 27:
        return True
    else:
        return False

この機能はさらに簡略化できます。

def collide(x1, y1, x2, y2):
    distance = math.hypot(x1 - x2, y1 - y2)
    return distance <= 27

ループを使用して衝突テストを実行します。

obstacles = [(binX, binY), (snowX, snowY), (glacierX, glacierY), (boardX, boardY), (iceX, iceY)]

for x, y in obstacles:
    collision = collide(x, y, playerX, playerY)
    if collision:
        print("You have collided!")

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

衝突検出が機能していませんか?

分類Dev

衝突検出が正しく機能していない

分類Dev

衝突検出Javascriptが機能していません(むしろImが機能していません)

分類Dev

SpriteKitの衝突検出が正しく機能しない

分類Dev

pygameで衝突検出が正しく機能しない

分類Dev

衝突検出が正しく機能しない

分類Dev

オブジェクトとウィンドウフォームの衝突検出のロジックが正しく機能していません。

分類Dev

衝突検出が正しく機能しないのはなぜですか?

分類Dev

Java2Dでの衝突検出が正しく機能しない

分類Dev

PyGameでゲームを作成しようとしていますが、衝突検出機能が機能していません

分類Dev

Javascriptの衝突が機能していません

分類Dev

敵の1つで衝突検出が機能しない理由を理解できません

分類Dev

検索入力が正しく機能していません

分類Dev

FormBuilderの検証が正しく機能していません

分類Dev

Angularjsの検証が正しく機能していません

分類Dev

ゲームオーバーのコードでの衝突がpygameで正しく機能していません

分類Dev

マスクとのPygameの衝突が機能していません

分類Dev

SDL 2の弾丸の衝突が機能していませんか?

分類Dev

衝突時のスクリプトが機能していませんか?

分類Dev

2D衝突チェックJavaScript、正しく機能しません

分類Dev

検索機能ロジックが正しく機能していません

分類Dev

Pygameスプライト-衝突検出が機能しない

分類Dev

pygameでの衝突検出が機能しない

分類Dev

XNA/Monogame Circle と Rectangle の衝突検出が機能しない

分類Dev

衝突検出は衝突を取得しません

分類Dev

全画面機能が正しく機能していません

分類Dev

mongo php検索クエリが正しく機能していませんか?

分類Dev

ReactJSのメール検証が正しく機能していません

分類Dev

materializecss検索バーがChromeで正しく機能していません

Related 関連記事

  1. 1

    衝突検出が機能していませんか?

  2. 2

    衝突検出が正しく機能していない

  3. 3

    衝突検出Javascriptが機能していません(むしろImが機能していません)

  4. 4

    SpriteKitの衝突検出が正しく機能しない

  5. 5

    pygameで衝突検出が正しく機能しない

  6. 6

    衝突検出が正しく機能しない

  7. 7

    オブジェクトとウィンドウフォームの衝突検出のロジックが正しく機能していません。

  8. 8

    衝突検出が正しく機能しないのはなぜですか?

  9. 9

    Java2Dでの衝突検出が正しく機能しない

  10. 10

    PyGameでゲームを作成しようとしていますが、衝突検出機能が機能していません

  11. 11

    Javascriptの衝突が機能していません

  12. 12

    敵の1つで衝突検出が機能しない理由を理解できません

  13. 13

    検索入力が正しく機能していません

  14. 14

    FormBuilderの検証が正しく機能していません

  15. 15

    Angularjsの検証が正しく機能していません

  16. 16

    ゲームオーバーのコードでの衝突がpygameで正しく機能していません

  17. 17

    マスクとのPygameの衝突が機能していません

  18. 18

    SDL 2の弾丸の衝突が機能していませんか?

  19. 19

    衝突時のスクリプトが機能していませんか?

  20. 20

    2D衝突チェックJavaScript、正しく機能しません

  21. 21

    検索機能ロジックが正しく機能していません

  22. 22

    Pygameスプライト-衝突検出が機能しない

  23. 23

    pygameでの衝突検出が機能しない

  24. 24

    XNA/Monogame Circle と Rectangle の衝突検出が機能しない

  25. 25

    衝突検出は衝突を取得しません

  26. 26

    全画面機能が正しく機能していません

  27. 27

    mongo php検索クエリが正しく機能していませんか?

  28. 28

    ReactJSのメール検証が正しく機能していません

  29. 29

    materializecss検索バーがChromeで正しく機能していません

ホットタグ

アーカイブ