Fun with the body angular velocity things

This commit is contained in:
karl 2020-02-02 15:14:35 +01:00
parent c4e4bdf5a7
commit d69a5c0c97
4 changed files with 8 additions and 14 deletions

View File

@ -31,9 +31,6 @@ func _physics_process(delta):
apply_torque_impulse(rot_vector * current_angle * 7)
apply_impulse(transform.basis.xform(Vector3.ZERO), -(transform.basis.y) * 0.05)
if current_angle < 0.1:
angular_velocity = Vector3.ZERO
for axis in angular_velocity:
if axis > 10:
axis -= axis * 0.75
# if current_angle < 0.1:
# angular_velocity.x = 0

View File

@ -16,6 +16,7 @@ mass = 1.73469
gravity_scale = 1.5
contacts_reported = 5
contact_monitor = true
angular_damp = 0.5
script = ExtResource( 1 )
[node name="TorsoCollider" type="CollisionShape" parent="."]

View File

@ -19,7 +19,7 @@ func _is_animation_playing():
func push(body):
# We multiply by 0.1 because we only want it to spin slightly, it should mostly go up
var offset = transform.basis.xform(Vector3.ZERO) #transform.basis.xform(touch_area.global_transform.origin - base.global_transform.origin) * 0.5
var offset = transform.basis.xform(-touch_area.global_transform.origin + base.global_transform.origin) * 0.1
var direction = (base.transform.basis.y - base.transform.basis.z).normalized() * 20.0
base.apply_impulse(offset, direction)

View File

@ -15,21 +15,17 @@ func _is_animation_playing():
func action():
anim.play("ArmatureAction")
# Apply a slight counter force
var offset = transform.basis.xform(Vector3.ZERO) #transform.basis.xform(touch_area.global_transform.origin - base.global_transform.origin) * 0.5
var direction = -(base.transform.basis.y - base.transform.basis.z).normalized() * 0.5
base.apply_impulse(offset, direction)
func push(body):
# We multiply by 0.1 because we only want it to spin slightly, it should mostly go up
var offset = transform.basis.xform(Vector3.ZERO) #transform.basis.xform(touch_area.global_transform.origin - base.global_transform.origin) * 0.5
var offset = transform.basis.xform(touch_area.global_transform.origin - base.global_transform.origin) * 0.3
var direction = (base.transform.basis.y - base.transform.basis.z).normalized() * 10.0
base.apply_impulse(offset, direction)
#base.apply_torque_impulse(base.transform.basis.y * 20.0)
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta: float) -> void:
# pass