jog moving

This commit is contained in:
OniriCorpe 2024-02-11 03:36:28 +01:00
parent e565b86c19
commit bbd8ca9280
3 changed files with 97 additions and 50 deletions

1
.gitignore vendored
View file

@ -1,5 +1,6 @@
# Godot 4+ specific ignores
.godot/
addons/godot-git-plugin/win64/~libgit_plugin.windows.editor.x86_64.dll
*.tmp
exports

View file

@ -54,25 +54,33 @@ func _unhandled_input(input_event):
if input_event is InputEventMIDI:
if debug > 0:
_print_midi_info(input_event)
# animate a beat
if !midi_beat and input_event.channel == beat_channel and ((input_event.pitch == beat_note and input_event.velocity == 127) or input_event.controller_number == 10):
if !midi_beat:
$beat/AnimationPlayer.play("beat")
midi_beat = true
if input_event.channel == beat_channel and ((input_event.pitch == beat_note and input_event.velocity == 0) or input_event.controller_number == 9):
elif input_event.channel == beat_channel and ((input_event.pitch == beat_note and input_event.velocity == 0) or input_event.controller_number == 9):
if midi_beat:
$beat/AnimationPlayer.play_backwards("beat")
$beat/AnimationPlayer.play("RESET")
midi_beat = false
# animate a grabbed jog
if input_event.channel == jog_channel and ((input_event.pitch == jog_note and input_event.velocity == 127) or input_event.controller_number == spin_note_1):
if !midi_jog:
$jog/AnimationPlayer.play("jog")
midi_jog = true
if input_event.channel == jog_channel and ((input_event.pitch == jog_note and input_event.velocity == 0) or input_event.controller_number == spin_note_2):
elif input_event.channel == jog_channel and ((input_event.pitch == jog_note and input_event.velocity == 0) or input_event.controller_number == spin_note_2):
if midi_jog:
$jog/AnimationPlayer.play_backwards("jog")
$jog/AnimationPlayer.play("RESET")
midi_jog = false
# animate a moving jog
if (input_event.channel == spin_channel_1 or input_event.channel == spin_channel_2) and input_event.controller_value == left:
$jog/AnimationPlayer.play("move")
midi_turnleft = true
if (input_event.channel == spin_channel_1 or input_event.channel == spin_channel_2) and input_event.controller_value == right:
elif (input_event.channel == spin_channel_1 or input_event.channel == spin_channel_2) and input_event.controller_value == right:
$jog/AnimationPlayer.play_backwards("move")
midi_turnright = true
@ -110,6 +118,12 @@ func _process(_delta):
# trigger the right controller
print("turn right")
if !midi_turnleft and !midi_turnright:
if !midi_jog:
$jog/AnimationPlayer.play("RESET")
# reset the turn values before the next cycle
# needed because it can't be turned to false in the _unhandled_input function
# because apparently there is no MIDI command sended for that .___.

View file

@ -1,39 +1,12 @@
[gd_scene load_steps=11 format=3 uid="uid://chynesmvg3dl5"]
[gd_scene load_steps=13 format=3 uid="uid://chynesmvg3dl5"]
[ext_resource type="Texture2D" uid="uid://pa6jmogeid3x" path="res://art/turn.PNG" id="1_58q2i"]
[ext_resource type="Script" path="res://node_2d.gd" id="1_r100h"]
[ext_resource type="Texture2D" uid="uid://f8ibqo4nbqqk" path="res://art/bark.PNG" id="3_grsrk"]
[ext_resource type="Script" path="res://jog.gd" id="4_m16or"]
[sub_resource type="GDScript" id="GDScript_grk35"]
[sub_resource type="Animation" id="Animation_e5aqk"]
resource_name = "jog"
length = 0.02
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1688, 342)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.01),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [4.43314, 4.11898]
}
[sub_resource type="Animation" id="Animation_720f4"]
length = 0.001
tracks/0/type = "value"
@ -61,38 +34,68 @@ tracks/1/keys = {
"values": [4.43314]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pi6b0"]
_data = {
"RESET": SubResource("Animation_720f4"),
"jog": SubResource("Animation_e5aqk")
}
[sub_resource type="Animation" id="Animation_bdwea"]
resource_name = "beat"
[sub_resource type="Animation" id="Animation_e5aqk"]
resource_name = "jog"
length = 0.02
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("beat:position")
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.01),
"transitions": PackedFloat32Array(1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(137, 307), Vector2(158, 371)]
"values": [Vector2(1688, 342)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("beat:rotation")
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.01),
"transitions": PackedFloat32Array(1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-1.29154, -0.959931]
"values": [4.11898]
}
[sub_resource type="Animation" id="Animation_no6c7"]
resource_name = "move"
length = 4.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2, 3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Vector2(1688, 342), Vector2(1628, 406), Vector2(1739, 448), Vector2(1828, 389)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1, 2, 3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [4.11898, 3.92699, 4.15737, 4.36332]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pi6b0"]
_data = {
"RESET": SubResource("Animation_720f4"),
"jog": SubResource("Animation_e5aqk"),
"move": SubResource("Animation_no6c7")
}
[sub_resource type="Animation" id="Animation_khjd8"]
@ -122,6 +125,34 @@ tracks/1/keys = {
"values": [-1.29154]
}
[sub_resource type="Animation" id="Animation_bdwea"]
resource_name = "beat"
length = 0.02
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("beat:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(158, 371)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("beat:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-0.959931]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jc7n3"]
_data = {
"RESET": SubResource("Animation_khjd8"),
@ -148,6 +179,7 @@ rotation = 4.43314
scale = Vector2(0.5, 0.5)
texture = ExtResource("3_grsrk")
flip_v = true
script = ExtResource("4_m16or")
[node name="AnimationPlayer" type="AnimationPlayer" parent="jog"]
libraries = {