-1

プレイヤーが暴徒の範囲内にいるかどうかを確認するにはどうすればよいですか? (私はピグレットでトップダウンゲームを作っています)モブが一定の距離内にいる場合、モブがプレイヤーを追いかけて攻撃するようにしていますが、これを効率的に行う方法がわかりません。x > mob.x - 50 および x < mob.x + 50 などを確認するために「if」ステートメントを実行する必要がありますか?

私は暴徒のためのクラスを持っています

class zombie(pyglet.sprite.Sprite):

    def __init__(self, image, x, y, batch,trees):
            pyglet.sprite.Sprite.__init__(self, image, x, y, batch=None)

次に、実行できるさまざまなアクションとしていくつかの関数を使用しました

    def move(self):
        ...
    def idle(self):
        ...

プレイヤーの位置は「player.x」と「player.y」で​​す(モブも同じですが、「プレイヤーの代わりにゾンビ」があります)

Joran が言ったように、Mob とプレイヤーの座標の間の距離を見つけることが最善の方法だと思います。距離を確認する別の関数を作成します。

これがわかりにくかったら申し訳ありません

4

1 に答える 1

1

おそらく、モンスターとプレイヤーの間の距離を計算する必要があります

sqrt((mob.x-player.x)**2 + (mob.y-player.y)**2)

おそらくそれを単純化して、sqrtを取り除くことができます...

于 2012-09-05T03:14:04.777 に答える