[godot] Mouse and bone following example.

This commit is contained in:
badlogic 2022-04-22 10:01:35 +02:00
parent b1b056ae4b
commit b4d6bbaf5a
4 changed files with 51 additions and 0 deletions

View File

@ -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")

View File

@ -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 )

View File

@ -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")

View File

@ -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 )