質問: mouseY; bullet(); bullet(); target(); if ((targetX - mouseX) * (targetX - mouseX) + (targetY - mouseY) * (targetY - mouseY) <= (r1 + r2) * (r1 + r2)) { } } void setup() { size(480, 480); }
回答: プログラミングってのは検索の結果を写すものじゃないんですけど... > > ・if以下に打ち込むべきコードがわからない > > > 「別のランダムな位置に円を置く」でいいんでしょ? 細かく言うと「別の」がちょっと引っかかるけど(ランダムというのは今の状況と関係なく新しい場所が決まるわけだから、本当にランダムにすると今と同じ位置になる可能性はわずかながらある)、 とりあえずプログラムの最初に「ランダムな位置に円を置く」をやっているのだから、それに準じた(そのまま、じゃダメかもね)処理をすればいいんじゃないですか? > > ・sqrt()を用いると良い とヒントが与えられているのですが > > > それが絡みそうなのは`(targetX - mouseX) * (targetX - mouseX) + (targetY - mouseY) * (targetY - mouseY) <= (r1 + r2) * (r1 + r2)`のところぐらいですけれど、これにsqrtを絡ませたところで当たり判定の結果に影響はないので、意味がないです。むしろ計算が増えるだけ無駄と言えましょう。Processingでは2点間の距離を求めるdist()という関数があるので、これを使えというならまだ理解できます。用意されている関数をわざわざ自分で再現するのは訓練以外には全く利がありません。