累乗



 更にボールを設定し、プレイヤーが接触するとその勢いに応じて速度を得るように設定した。

 今回追加した要素は条件分岐のみだし、この辺まで来るとソースはやたら長いのでソース省略。
 あと、今回からNetBeansでコーディングを始めている。めんどくさいが。


エラー集:超初級編


 さて、プレイヤーとボールとの距離を算出するのに


距離=((選手 X 座標−玉 X 座標)の2乗 +
    (選手 Y 座標−玉 Y 座標)の2乗  )の平方(根)
としたかったのだが、

float frndX = 10;
float ballX = 100;
float frndY = 10;
float ballY = 100;
・
・
・
float bpdis = Math.sqrt((frndX - ballX)^2+(frndY - ballY)^2)

としても


演算子 ^ は float,float に適用できません。
float bpdis = Math.sqrt((frndX - ballX)^2+(frndY - ballY)^2)
^
コンパイルエラーになる。・・・えぇー?なんでぇ?
 同時に精度がdoubleからfloatに落ちる可能性を指摘されるが、

float bpdis = (float)Math.sqrt((frndX - ballX)^2
               +(frndY - ballY)^2)

 こうすれば精度の問題はクリアされる。


 ちなみに、

float bpdis = frndX^2

 などとすると、


演算子 ^ は float,int に適用できません。
float k = frndX^2;
^
 などとなる。益々以って不可解である。


 試しに

System.out.println(0^2);

としたら、結果は3だった・・・。

なんじゃこりゃー!?