Fixed cubic bezier curve
This commit is contained in:
parent
808e1503fb
commit
3834d282ca
@ -36,15 +36,21 @@ func _redraw(gizmo):
|
|||||||
var exit = portal.exit_portal
|
var exit = portal.exit_portal
|
||||||
var D = portal.global_position.distance_to(exit.global_position)
|
var D = portal.global_position.distance_to(exit.global_position)
|
||||||
|
|
||||||
var p0 = Vector3.ZERO
|
var p0 = portal.global_position
|
||||||
var p3 = portal.to_local(exit.global_position)
|
var p3 = exit.global_position
|
||||||
var p1 = p0 + -portal.transform.basis.z * D * 0.25 # Control point
|
|
||||||
var p2 = p3 + -exit.transform.basis.z * D * 0.25 # Control point
|
|
||||||
|
|
||||||
var RESOLUTION: int = 24
|
var p1 = p0 -portal.global_transform.basis.z * D * 0.25
|
||||||
|
var p2 = p3 -exit.global_transform.basis.z * D * 0.25
|
||||||
|
|
||||||
|
|
||||||
|
p0 = portal.to_local(p0)
|
||||||
|
p1 = portal.to_local(p1)
|
||||||
|
p2 = portal.to_local(p2)
|
||||||
|
p3 = portal.to_local(p3)
|
||||||
|
|
||||||
lines.push_back(p0)
|
lines.push_back(p0)
|
||||||
|
|
||||||
|
const RESOLUTION: int = 24
|
||||||
for i in range(1, RESOLUTION + 1):
|
for i in range(1, RESOLUTION + 1):
|
||||||
var t: float = float(i) / RESOLUTION
|
var t: float = float(i) / RESOLUTION
|
||||||
var spline_pos: Vector3 = pow(1 - t, 3) * p0 \
|
var spline_pos: Vector3 = pow(1 - t, 3) * p0 \
|
||||||
@ -55,12 +61,9 @@ func _redraw(gizmo):
|
|||||||
lines.push_back(spline_pos)
|
lines.push_back(spline_pos)
|
||||||
|
|
||||||
lines.push_back(p3)
|
lines.push_back(p3)
|
||||||
print("[gizmo] Bezier lines: " + str(lines.size()))
|
|
||||||
|
|
||||||
gizmo.add_lines(PackedVector3Array([p0, p3, p1, p2]), get_material("secondary", gizmo))
|
gizmo.add_lines(PackedVector3Array([p0, p3, p1, p2]), get_material("secondary", gizmo))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#var handles = PackedVector3Array()
|
#var handles = PackedVector3Array()
|
||||||
#handles.push_back(Vector3(0, 1, 0))
|
#handles.push_back(Vector3(0, 1, 0))
|
||||||
#handles.push_back(Vector3(0, 2, 0))
|
#handles.push_back(Vector3(0, 2, 0))
|
||||||
|
12
forward_pointer.gd
Normal file
12
forward_pointer.gd
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
@tool
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
|
||||||
|
@onready var indicator: MeshInstance3D = $Indicator
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
var p = get_parent() as Node3D
|
||||||
|
if p:
|
||||||
|
indicator.global_position = p.global_position
|
||||||
|
indicator.global_position -= p.global_transform.basis.z
|
1
forward_pointer.gd.uid
Normal file
1
forward_pointer.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://cls46uawo3qq
|
19
forward_pointer.tscn
Normal file
19
forward_pointer.tscn
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://b3igtxttykf7i"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cls46uawo3qq" path="res://forward_pointer.gd" id="1_cde0p"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_anedn"]
|
||||||
|
albedo_color = Color(1, 0, 1, 1)
|
||||||
|
emission_enabled = true
|
||||||
|
emission = Color(0.425891, 0.000125429, 0.425888, 1)
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id="SphereMesh_n0wat"]
|
||||||
|
material = SubResource("StandardMaterial3D_anedn")
|
||||||
|
radius = 0.25
|
||||||
|
height = 0.5
|
||||||
|
|
||||||
|
[node name="ForwardPointer" type="Node"]
|
||||||
|
script = ExtResource("1_cde0p")
|
||||||
|
|
||||||
|
[node name="Indicator" type="MeshInstance3D" parent="."]
|
||||||
|
mesh = SubResource("SphereMesh_n0wat")
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://27pb62xwsqd8"]
|
[gd_scene load_steps=13 format=3 uid="uid://27pb62xwsqd8"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b5x7fmpwck335" path="res://hud.tscn" id="1_mmt1i"]
|
[ext_resource type="PackedScene" uid="uid://b5x7fmpwck335" path="res://hud.tscn" id="1_mmt1i"]
|
||||||
[ext_resource type="MeshLibrary" uid="uid://bedqgubx1g1uf" path="res://prototypes.tres" id="2_vdsn8"]
|
[ext_resource type="MeshLibrary" uid="uid://bedqgubx1g1uf" path="res://prototypes.tres" id="2_vdsn8"]
|
||||||
@ -6,6 +6,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://d2bvvjsibau8c" path="res://addons/simple-portal-system/scripts/portal.gd" id="4_top28"]
|
[ext_resource type="Script" uid="uid://d2bvvjsibau8c" path="res://addons/simple-portal-system/scripts/portal.gd" id="4_top28"]
|
||||||
[ext_resource type="Script" uid="uid://bkv7t4hw21byg" path="res://addons/simple-portal-system/scripts/simple_portal_teleport.gd" id="5_evjit"]
|
[ext_resource type="Script" uid="uid://bkv7t4hw21byg" path="res://addons/simple-portal-system/scripts/simple_portal_teleport.gd" id="5_evjit"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cgdlowfuuorvi" path="res://player.tscn" id="6_hlt8e"]
|
[ext_resource type="PackedScene" uid="uid://cgdlowfuuorvi" path="res://player.tscn" id="6_hlt8e"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b3igtxttykf7i" path="res://forward_pointer.tscn" id="6_vdsn8"]
|
||||||
[ext_resource type="Script" uid="uid://cili3lyodjqel" path="res://portal_environment_adapter.gd" id="7_2gewm"]
|
[ext_resource type="Script" uid="uid://cili3lyodjqel" path="res://portal_environment_adapter.gd" id="7_2gewm"]
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_b0o0q"]
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_b0o0q"]
|
||||||
@ -61,6 +62,8 @@ script = ExtResource("5_evjit")
|
|||||||
transform = Transform3D(1, 0, 4.72511e-13, 0, 1, 0, -4.72511e-13, 0, 1, 0, 0, -0.250244)
|
transform = Transform3D(1, 0, 4.72511e-13, 0, 1, 0, -4.72511e-13, 0, 1, 0, 0, -0.250244)
|
||||||
shape = SubResource("BoxShape3D_cgnft")
|
shape = SubResource("BoxShape3D_cgnft")
|
||||||
|
|
||||||
|
[node name="ForwardPointer" parent="Portal_red" instance=ExtResource("6_vdsn8")]
|
||||||
|
|
||||||
[node name="Portal_orange" type="MeshInstance3D" parent="." node_paths=PackedStringArray("exit_portal")]
|
[node name="Portal_orange" type="MeshInstance3D" parent="." node_paths=PackedStringArray("exit_portal")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 2, -0.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 2, -0.5)
|
||||||
mesh = ExtResource("3_c4jka")
|
mesh = ExtResource("3_c4jka")
|
||||||
@ -80,6 +83,8 @@ script = ExtResource("5_evjit")
|
|||||||
transform = Transform3D(1, 0, 4.72511e-13, 0, 1, 0, -4.72511e-13, 0, 1, 0, 0, -0.250244)
|
transform = Transform3D(1, 0, 4.72511e-13, 0, 1, 0, -4.72511e-13, 0, 1, 0, 0, -0.250244)
|
||||||
shape = SubResource("BoxShape3D_cgnft")
|
shape = SubResource("BoxShape3D_cgnft")
|
||||||
|
|
||||||
|
[node name="ForwardPointer" parent="Portal_orange" instance=ExtResource("6_vdsn8")]
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("6_hlt8e")]
|
[node name="Player" parent="." instance=ExtResource("6_hlt8e")]
|
||||||
transform = Transform3D(0.727006, 0, 0.686631, 0, 1, 0, -0.686631, 0, 0.727006, 4.51826, 1.08552, 4.0716)
|
transform = Transform3D(0.727006, 0, 0.686631, 0, 1, 0, -0.686631, 0, 0.727006, 4.51826, 1.08552, 4.0716)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user