生成済みのスプライトを置き換えます
sprite_replace(ind, fname, imgnumb, removeback, smooth, xorig, yorig);
この関数は生成済みのスプライトを別のスプライト情報で上書きします。これはスプライトのインデックス番号を指定する以外は、sprite_add()とほぼ同じ動作をします。 指定のインデックス番号はアセットのツリー、またはsprite_add()やsprite_create_from_surface()により生成済みのスプライトでなければなりません。
注意:この処理はアセットを上書きするため、上書き前の状態に復元することはできません。
アニメーションスプライトとする画像は、stripフォーマットにする必要があります。 (下記の画像参照)
指定の画像の幅÷サブイメージの数=ストリップされた画像の幅
という計算式となります。
この画像では、背景色が濃い紫色となっていますが、引数「removeback」をtrueにすることによりこの背景を透過することができます。 これは画像の一番左下の色を透過します。例えば一番左下が緑色であれば、緑色のピクセルが透過されます。
引数「smooth」をtrueにすると、スプライトのエッジを滑らかにすることができます。これは背景が透過されていた場合、 そのエッジに半透明の境界を作成します。
デフォルトでは、すべての新しいスプライトの境界ボックスは、automaticallyになっています。これを変更するには、 関数sprite_collsion_mask()?を使用することで、カスタマイズが可能となります。
この関数で動的にロードし不要なスプライトを削除しないと、メモリリークとなり、ゲームのパフォーマンス低下、 ひいてはゲームをクラッシュさせる危険性があります。 そのため、不要なスプライトはsprite_delete()で削除する必要があります。
sprite_replace(spr_banner, "gravemaker.png", 1, false, false, 0, 0);
上記コードはスプライト"spr_banner"を別のアセットで上書きします