自作を呼び出すなら、1つ1つ呼びますよね。
FOR I=o TO 511
IF SPUSED(I) && ENE[oo,0]==1 THEN ENE_MOVE I
みたいに。
でもSPFUNCは
SPFUNC oo,ENE_MOVE
としておけば、「CALL SPRITE」された時に、一斉に実行されます。
で、それだと「DEF ENE_MOVE」内でのSP番号が分からないので、
SP=CALLIDX
みたいなのを最初に書くわけです。
で、そのSPに対して処理すれば、ENE_MOVEに飛ぶべきSPキャラ全てに対して同じ処理が行われます。
カベのキャラクターが「&H1A0」(スマイルツールの「マップ」の下画面右上に表示されている)だとして、
描かれているBGスクリーン番号がBG、
スプライトの座標がX,Yなら、
IF (BGGET(BG,X,Y,1) AND &HFFF)==&H1A0 THEN
~~~当たったときの処理~~
ENDIF