skeleton_bone_state_set(bone, map);
Argument La description bone Le nom (comme une chaîne) de l'os. map Le fichier ds_map (précédemment créé) qui stocke les données de l'os.
N/A
Votre animation squelettique est composée d'un certain nombre d '«os», que vous aurez définis et nommés dans votre programme d'animation, et cette fonction peut être utilisée pour définir certaines données pour l'os nommé à tout moment. Notez que ces données définiront la pose actuelle pour le squelette, en fonction de l'ensemble d'animation utilisé, et la fonction nécessite une création précédemment créée ds_map, qui devrait avoir les clés suivantes et leurs valeurs requises:
- "x": La position x locale de l'os par rapport à l'os parent.
- "y": La position y locale de l'os par rapport à l'os parent.
- "angle": La rotation locale de l'os par rapport à l'os parent.
- "xscale": L'échelle horizontale locale de l'os.
- "yscale": L'échelle verticale locale de l'os.
- "parent": Le nom (une chaîne) de l'os parent.
Cette fonction est fournie afin que vous puissiez "intercepter" les données d'animation et les modifier avant qu'elles ne soient dessinées à l'écran. Vous devriez donc les utiliser dans l'événement Other - Animation Update, car cet événement est déclenché juste avant le Draw. Événements.
Notez que vous pouvez utiliser la même carte que celle que vous avez remplie skeleton_bone_state_get fonction, même si elle contient les clés et les valeurs "World" supplémentaires. Puisque ceux-ci se rapportent à des valeurs en lecture seule, les définir avec cette fonction n'aura aucun effet.
IMPORTANT! Cette fonction n'est pas disponible avec la licence d'évaluation du produit.
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 = arctan2(deltay, deltax);
var angle = point_direction(xx, yy, mouse_x, mouse_y);
ds_map_replace(map, "angle", -angle * 180 / pi);
skeleton_bone_state_set("head", map);
ds_map_clear(map);
Le code ci-dessus crée un ds_map et le remplit ensuite avec les données de l'os nommé "head". Il extrait ensuite la position du monde pour l'os et utilise ces données pour régler l'angle de l'os afin de suivre la position de la souris dans le jeu.