skeleton_bone_state_set

骨骼动画由许多"骨骼"组成,您将在动画程序中定义这些骨骼并为其命名,此函数可用于随时为命名的骨骼设置某些数据。请注意,此数据将设置骨骼的当前姿势,具体取决于所使用的动画集,并且该函数需要以前创建的DS map,该贴图应具有以下关键帧及其所需的值:

提供此函数是为了让您可以"拦截"动画数据,并在将其绘制到屏幕上之前对其进行修改,因此您可能希望在Other-Animation Update事件中使用它,因为此事件恰好在绘制事件之前触发。

请注意,您可以使用通过skeleton_bone_state_get()函数填写的相同贴图,即使它包含其他" world "键和值。由于这些引用的是只读值,因此使用此函数设置它们不会产生任何影响。

 

语法:

skeleton_bone_state_set(bone, map);

参数类型描述
boneString骨骼的名称(作为字符串)。
mapDS Map存储骨骼数据的(先前创建的)DS贴图。

 

返回:

N/A

 

例子:

var map = ds_map_create();
skeleton_bone_state_get("head", map);
var xx = ds_map_find_value(map, "worldX");
var yy = ds_map_find_value(map, "worldY");
var deltax = mouse_x - (x + xx);
var deltay = mouse_y - (y + yy);
var angle = -radtodeg(arctan2(deltay, deltax));
ds_map_replace(map, "angle", angle);
skeleton_bone_state_set("head", map);
ds_map_destroy(map);

上面的代码创建了一个DS映射,然后用名为" Head "的骨骼中的数据填充它。然后,它提取骨骼的世界位置,并使用该数据来设置骨骼的"角度",以跟踪游戏中的鼠标位置。