>>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