sprite_collision_mask()


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

sprite_collision_mask

指定のスプライトのコリジョンマスクを設定します

構文

sprite_collision_mask(ind, sepmasks, bboxmode, bbleft, bbtop, bbright, bbbottom, kind, tolerance);
ind
コリジョンを変更するスプライトのインデックス番号
sepmasks
コリジョンマスクを各サブイメージに適用するのであれば(true)、1つのマスクをすべてに適用するのであれば(false)
bboxmode
境界ボックスのモード(0=automatic, 1=full image, 2=user defined)
bbleft
境界ボックスの一番左の座標
bbtop
境界ボックスの一番上の座標
bbright
境界ボックスの一番右の座標
bbbottom
境界ボックスの一番下の座標
kind
マスクの種類(0=precise, 1=bounding box, 2=disk, 3=diamond)
tolerance
透明度の値での許容範囲(0=まったく寛容でない, 255=完全な寛容)

戻り値

N/A
なし

説明

この関数を使用すると、スプライトが持つべきコリジョンマスクを設定することができます。 bboxmodeに0(automatic)、kindに0(precise)を指定するとマスクは自動で計算されます。ですが、ユーザ定義する場合には、各値を設定する必要があります。

境界ボックスは常に(0, 0)、スプライトの左上隅を基準に相対的な位置を設定します

境界ボックスのモードをユーザ定義(bboxmode=2)を指定した際は、マスクの種類(kind)に1〜3の一般的な形状を指定する必要があります。

最後に、toleranceはユーザ定義したマスクがどれくらい正確にマスクするのかを決めます。 0を指定すると、透明度が0より大きいピクセルであれば衝突したという判定を行います

注意

この関数はあらかじめ登録したリソースに対して変更を行うことはできません。sprite_duplicate()などにより複製したスプライトのみ操作を行うことが可能です。


spr = sprite_add("player_5.png", 16, true, true, 0, 0);
sprite_collision_mask(spr, true, 1, 0, 0, 0, 0, 0, 0);

上記コードは、外部リソースからスプライトを作成し、そのイメージ全体を境界ボックスとして扱います

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2024-03-07 2023-08-09 2023-05-21 2023-05-20 2023-05-04 2022-10-13 2022-07-21 2022-07-02 2022-04-06 2021-11-30 2021-11-26 2021-10-03 2021-09-23 2021-08-15 2021-06-02 2021-01-23 2021-01-21 2021-01-19 2021-01-18 2021-01-16 2021-01-15

人気の10件

今日の10件



これまでの訪問者: 2674
今日の訪問者: 2
昨日の訪問者: 0
閲覧者: 2