>>uさん
ということは、
円A, Bがあるとして、
(Ax - Bx)^2 + (Ay - By)^2 == (Ar - Br)^2
ということでしょうか?
実際にスクリプトをくんでみましたが、うまくいっているようにはとうてい見えません。
#const CIRCLE_A_R 30 ;円Aの半径
#const CIRCLE_B_R 100 ;円Bの半径
#define CIRCLE_B_X (ginfo_winx /2)
#define CIRCLE_B_Y (ginfo_winy /2)
*main
await 8
redraw 0
color 255, 255, 255 :boxf
pos 0, 0
color
//powやpowfを使うと、負の場合非数が帰ってくるため、
a = (mousex -CIRCLE_B_X) *(mousex -CIRCLE_B_X)
b = (mousey -CIRCLE_B_Y) *(mousey -CIRCLE_B_Y)
c = (CIRCLE_A_R -CIRCLE_B_R) *(CIRCLE_A_R -CIRCLE_B_R)
if (a + b == c) {
mes "半径と等しい: 衝突"
}
if (a + b <= c) {
mes "半径未満: 衝突"
}
circle mousex -CIRCLE_A_R, mousey -CIRCLE_A_R, mousex +CIRCLE_A_R, mousey +CIRCLE_A_R, 0 ;円A
circle CIRCLE_B_X -CIRCLE_B_R, CIRCLE_B_Y -CIRCLE_B_R, CIRCLE_B_X +CIRCLE_B_R, CIRCLE_B_Y +CIRCLE_B_R, 0 ;円B
redraw 1
goto *main