sprite_collision_mask(ind, sepmasks, bboxmode, bbleft, bbtop, bbright, bbbottom, kind, tolerance);
参数 描述 ind 将被被设置边界框的精灵的索引。 sepmasks 为每一个次级图像分别设置碰撞遮罩则设为 (true),为所有次级图像设置同一个碰撞遮罩则设为 (false). bboxmode 使用哪种边界框。0为自动,1为覆盖全图像,2为自定义。 bbleft 边界框的左侧最大位置。 bbtop 边界框的顶部最大位置。 bbright 边界框的右侧最大位置。 bbbottom 边界框的底部最大位置。 kind The kind of mask, a constant (see the table in the description). tolerance 指示透明容忍度。0为不容忍,1为全部容忍,具体请看描述。
N/A(无返回值)
With this function you can set the properties of the collision mask that a sprite should have. 如果你选择自动或覆盖全图像,那么其它的边界框的参数可以被设置为0。. 如果你选择自定义遮罩,那么你必须设置这些值。不同的边界框值总是以精灵的左上角为相对位置(0,0)。
如果你将遮罩面设为方形以外的其它的形状,那么需要更多的资源来计算它,降低性能。所以一般情况下,应该将遮罩种类设为方形。
NOTE: This function does not permit the rotated rectangle collision mask kind.
The kind of mask that can be set will be one of the following constants:
常量 描述 bboxkind_rectangular A rectangular (non-rotating) rectangle collision mask shape bboxkind_ellipse An elliptical collision mask shape bboxkind_diamond A diamond collision mask shape bboxkind_precise A precise collision mask, where the mask will conform to the non-transparent pixels of the sprite, based on the tolerance value given (see below)) 容忍度是用来定义精确遮罩是有多精确的。例如使用覆盖全部图像将不会起作用。0容忍度意味遮罩将会覆盖所有透明度超过0的地区(即不透明的地方)。设为X遮盖将会覆盖透明度超过X的地方。
注意此函数只对 位图 精灵有用,并且对SWF或JSON(骨骼)精灵不起作用。作用: 此函数只对复制出来的精灵起作用。而 不 是直接对预制资源起作用。you can duplicate sprites using the function 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);
上面这段代码将会从外部资源加载精灵,并将它的索引存储在"spr"变量中。然后将精确的遮罩应用到每个次级图像上。.