SPHITRCが遅いわけではなく、毎フレーム(1秒間に60回)、スプライト番号0~511の512枚に対して、その番号が存在するか、存在したら座標が範囲内か、という調査をすると大変な量ですよね。 調査するスプライト番号が例えば10~19までの最高10個、とかで決まっていれば重くはならないと思います。