私が書いているゲームでは、2 つの座標セット間の距離の整数値を見つける必要があります。これは、さまざまなマップを保持する2D 配列です。(オリジナルのゼルダのように)。敵の難易度が上がるので、中心(5,5)から離れるほど数値が高くなります。理想的には、 0 から 14 の間である必要があります。配列は 11x11です。
さて、高校時代に覚えたピタゴラスの公式を使ってみたのですが、オーバーフローを吐き出してしまいました。理由がわかりません。
srand(rand());
int distance=sqrt(pow((5-worldx), 2)-pow((5-worldy), 2));
if(distance<0) //alternative to abs()
{
distance+=(distance * 2);
}
if(distance>13)
{
distance=13;
}
int rnd=rand()%(distance+1);
Monster testmonster = monsters[rnd];