From b4d6bbaf5a0363b1b40de131f0f0771d9fefdd04 Mon Sep 17 00:00:00 2001 From: badlogic Date: Fri, 22 Apr 2022 10:01:35 +0200 Subject: [PATCH] [godot] Mouse and bone following example. --- .../05-mouse-following/mouse-following.gd | 11 +++++++++++ .../05-mouse-following/mouse-following.tscn | 12 ++++++++++++ .../06-bone-following/bone-following.gd | 11 +++++++++++ .../06-bone-following/bone-following.tscn | 17 +++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 spine-godot/example/examples/05-mouse-following/mouse-following.gd create mode 100644 spine-godot/example/examples/05-mouse-following/mouse-following.tscn create mode 100644 spine-godot/example/examples/06-bone-following/bone-following.gd create mode 100644 spine-godot/example/examples/06-bone-following/bone-following.tscn diff --git a/spine-godot/example/examples/05-mouse-following/mouse-following.gd b/spine-godot/example/examples/05-mouse-following/mouse-following.gd new file mode 100644 index 000000000..93054a586 --- /dev/null +++ b/spine-godot/example/examples/05-mouse-following/mouse-following.gd @@ -0,0 +1,11 @@ +extends Node2D + +onready var spineboy: SpineSprite = $Spineboy + +func _before_world_transforms_change(_sprite): + spineboy.set_global_bone_transform("crosshair", Transform2D(0, get_viewport().get_mouse_position())) + +func _ready(): + spineboy.get_animation_state().set_animation("walk", true, 0) + spineboy.get_animation_state().set_animation("aim", true, 1) + spineboy.connect("before_world_transforms_change", self, "_before_world_transforms_change") diff --git a/spine-godot/example/examples/05-mouse-following/mouse-following.tscn b/spine-godot/example/examples/05-mouse-following/mouse-following.tscn new file mode 100644 index 000000000..f7227fcf9 --- /dev/null +++ b/spine-godot/example/examples/05-mouse-following/mouse-following.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://examples/05-mouse-following/mouse-following.gd" type="Script" id=1] +[ext_resource path="res://assets/spineboy/spinebody-data-res.tres" type="SpineSkeletonDataResource" id=2] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 481, 457 ) +scale = Vector2( 0.457952, 0.457952 ) +skeleton_data_res = ExtResource( 2 ) diff --git a/spine-godot/example/examples/06-bone-following/bone-following.gd b/spine-godot/example/examples/06-bone-following/bone-following.gd new file mode 100644 index 000000000..a3415c511 --- /dev/null +++ b/spine-godot/example/examples/06-bone-following/bone-following.gd @@ -0,0 +1,11 @@ +extends Node2D + +onready var spineboy: SpineSprite = $Spineboy +onready var sprite: Sprite = $Spineboy/Sprite + +func _world_transforms_changed(_sprite): + sprite.global_transform = spineboy.get_global_bone_transform("gun-tip") + +func _ready(): + spineboy.get_animation_state().set_animation("walk", true, 0) + spineboy.connect("world_transforms_changed", self, "_world_transforms_changed") diff --git a/spine-godot/example/examples/06-bone-following/bone-following.tscn b/spine-godot/example/examples/06-bone-following/bone-following.tscn new file mode 100644 index 000000000..e086bca7f --- /dev/null +++ b/spine-godot/example/examples/06-bone-following/bone-following.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://assets/spineboy/spinebody-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://examples/06-bone-following/bone-following.gd" type="Script" id=2] +[ext_resource path="res://icon.png" type="Texture" id=3] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 478, 483 ) +scale = Vector2( 0.58461, 0.58461 ) +skeleton_data_res = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="Spineboy"] +position = Vector2( 20, 20 ) +texture = ExtResource( 3 )