リソース操作・スプライト
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
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件
これまでの訪問者: 3001
今日の訪問者: 2
昨日の訪問者: 1
閲覧者: 3