sprite_create_from_surface()


リソース操作・スプライト

sprite_create_from_surface

サーフェースを指定してスプライトを生成します

構文

sprite_create_from_surface(index, x, y, w, h, removeback, smooth, xorig, yorig);
index
サーフェースのインデックス番号
x
コピーする左上座標(X)
y
コピーする左上座標(Y)
w
コピーする幅
h
コピーする高さ
removeback
透過色を有効にするかどうか(true / false)
smooth
エッジを滑らかにするかどうか(true / false)
xorig
スプライトの中心座標(X)
yorig
スプライトの中心座標(Y)

戻り値

Real
スプライトのインデックス番号

説明

この関数を使用すると、生成済みのサーフェースからスプライトを生成します。 x/yは左上隅(0, 0)を基準とした座標で、w/hで幅と高さを指定して切り取るサイズを指定します。

"removeback"にtrueを指定すると、左下隅のピクセルを透過色として扱い、同じ色を透過します。

"smooth"にtrueを指定した場合、"removeback"が有効であれば、エッジの周りに半透明の境界線を作成し、滑らかにします。

最後に、スプライトのx,yの原点を指定することができます。例えば、32x32のスプライトに(16, 16)を指定すると中心が原点となります。

デフォルトでは、境界ボックスが"automatically"になっています。これを変更するにはsprite_collision_mask()を使用します。

注意点

この関数により生成されたスプライトは不要になっても自動的に削除されません。そのため不要なスプライトを残したままにすると、メモリリークの原因となり、ゲームのパフォーマンス低下、最終的にはゲームをクラッシュさせる可能性があります。そのため、不要なスプライトはsprite_delete()で削除する必要があります。


var surf;
surf = surface_create(32, 32);
surface_set_target(surf);
draw_clear_alpha(c_black, 0);
draw_sprite(spr_Body, 0, 0, 0);
draw_sprite(spr_Clothes, 0, 0, 0);
draw_sprite(spr_Hair, 0, 0, 0);
spr_custom = sprite_create_from_surface(surf, 0, 0, 32, 32, true, true, 16, 16);
surface_reset_target();
surface_free(surf);

上記コードはサーフェースを生成し、各種スプライトを描画し、その描画内容をもとに"spr_custom"を生成し、サーフェースは削除します。

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2020-12-02 2020-12-01 2020-11-29 2020-11-27 2020-11-22 2020-11-21 2020-11-19 2020-10-07 2020-10-05 2020-10-02 2020-10-01

人気の10件

今日の10件



これまでの訪問者: 2125
今日の訪問者: 3
昨日の訪問者: 1
閲覧者: 3