骨骼动画由许多"骨骼"组成,您将在动画程序中定义这些骨骼并为其命名,此函数可用于随时为命名的骨骼设置某些数据。请注意,此数据将设置骨骼的当前姿势,具体取决于所使用的动画集,并且该函数需要以前创建的DS map,该贴图应具有以下关键帧及其所需的值:
提供此函数是为了让您可以"拦截"动画数据,并在将其绘制到屏幕上之前对其进行修改,因此您可能希望在Other-Animation Update事件中使用它,因为此事件恰好在绘制事件之前触发。
请注意,您可以使用通过skeleton_bone_state_get()函数填写的相同贴图,即使它包含其他" world "键和值。由于这些引用的是只读值,因此使用此函数设置它们不会产生任何影响。
skeleton_bone_state_set(bone, map);
参数 | 类型 | 描述 |
---|---|---|
bone | String | 骨骼的名称(作为字符串)。 |
map | DS 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 "的骨骼中的数据填充它。然后,它提取骨骼的世界位置,并使用该数据来设置骨骼的"角度",以跟踪游戏中的鼠标位置。