IF文が多いなら条件式が成立してない時の処理はザックリ飛ばしてくれるはずなので、上手く使えばむしろ軽くなると思うんですけど IF文を入れ子じゃなくて並列書きにしてません? もしくはG系命令で当たり判定ってことは、GPUTCHR命令で描いた背景に、GSPOIT()関数でキャラクターのドットのある場所全部で背景と重なってるかどうかの判定取ってるとかだったりします? 処理の量を減らす方法としては「点」で判定してるのを「線」にするだけでも結構効果あったりしますよ。