BGCOORD 0,X,Y,1 OUT BX,BY
IF BGGET(0,BX,BY,0)!=0 THEN 衝突処理
と
IF BGGET(0,X,Y,1)!=0 THEN 衝突処理
は、まったく同じ処理なので、最終的にBGGET()で判定するのであれば、BGCOORDを使わない後者でよいと思います(*´▽`*)
なお、前者のように「一度BGのキャラ単位に変換」する方法は、「BGGET()の代わりに、配列に保存してあるマップデータを参照して当たり判定を行う」ときにも使えます。
例えば、
BGCOORD 0,X,Y,1 OUT BX,BY
IF MAP[BX,BY]!=0 THEN 衝突処理
こんな感じです(●´ω`●)