"velocity" arrow!

This commit is contained in:
mehbark 2025-05-06 00:30:37 -04:00
parent cd68c57c9b
commit 86b3f2c889
5 changed files with 81 additions and 3 deletions

BIN
arrow.blend Normal file

Binary file not shown.

64
arrow.blend.import Normal file
View file

@ -0,0 +1,64 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b3ajlrwduhxpr"
path="res://.godot/imported/arrow.blend-d567a12caad2abea5cccaab885e65266.scn"
[deps]
source_file="res://arrow.blend"
dest_files=["res://.godot/imported/arrow.blend-d567a12caad2abea5cccaab885e65266.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"arrow_Plane": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"save_to_file/enabled": true,
"save_to_file/path": "res://model/arrow.res"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
model/arrow.res Normal file

Binary file not shown.

View file

@ -52,6 +52,7 @@ var lvel_displayed := lvel
@export var type: Piece.Type
var speedometer: Label3D
@onready var arrow := get_node_or_null("Arrow") as MeshInstance3D
# TODO: much, *much* better animation is needed. ESPECIALLY if we're doing slowmo
# (we're doing slowmo because it is SICK)
@ -136,12 +137,15 @@ func _ready() -> void:
speedometer.font_size = 64
add_child(speedometer)
#TODO: arrow!
func format_vel(vel: Vector2) -> String:
if vel.is_zero_approx():
return ""
else:
return "%d,%d" % [vel.x,vel.y]
# we use abs because the arrow already indicates direction
return "%d,%d" % [abs(vel.x),abs(vel.y)]
func _process(_delta: float) -> void:
speedometer.text = format_vel(lvel_displayed)
if arrow:
arrow.visible = lvel_displayed != Vector2i.ZERO
rotation.y = (1.0*lvel_displayed.clampi(-1,1)).angle_to(Vector2.UP)

View file

@ -1,7 +1,12 @@
[gd_scene load_steps=3 format=3 uid="uid://bghr6ew34loyb"]
[gd_scene load_steps=5 format=3 uid="uid://bghr6ew34loyb"]
[ext_resource type="SphereMesh" uid="uid://bxuewsvlsvexw" path="res://model/ball.tres" id="1_qixli"]
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_c3ygy"]
[ext_resource type="ArrayMesh" uid="uid://er57431oil1l" path="res://model/arrow.res" id="3_tqeq4"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uae17"]
transparency = 1
albedo_color = Color(1, 1, 1, 0.498039)
[node name="Ball" type="MeshInstance3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.3, 0.5)
@ -9,3 +14,8 @@ mesh = ExtResource("1_qixli")
script = ExtResource("2_c3ygy")
type = 2
metadata/_custom_type_script = "uid://bq3a5hhccxndn"
[node name="Arrow" type="MeshInstance3D" parent="."]
transform = Transform3D(-8.74228e-09, 0, 0.2, 0, 0.2, 0, -0.2, 0, -8.74228e-09, 0.00918186, 0.0516835, -0.498354)
mesh = ExtResource("3_tqeq4")
surface_material_override/0 = SubResource("StandardMaterial3D_uae17")