birb/main character.gd
Travis Gatlin 976d690299 need to fix the angle interpolation but its a start (#8)
it does a weird thing when you go from one side to the other, probably because of how godot handles the angles. It's def fixable but I'll have to play around with it more

Reviewed-on: #8
Reviewed-by: ysandler <accounts@tzed.io>
Co-authored-by: Travis Gatlin <travisgatlin53@yahoo.com>
Co-committed-by: Travis Gatlin <travisgatlin53@yahoo.com>
2025-03-10 19:23:22 -05:00

29 lines
921 B
GDScript

extends CharacterBody2D
@onready var global = $"/root/Player"
const SPEED = 350.0
func _physics_process(delta: float) -> void:
global.emit_signal("playerPosition",self.global_position)
movement()
func animation():
pass
func movement():
var vertical = Input.get_axis("up","down")
var horizontal = Input.get_axis("left","right")
var rotVector = Vector2(vertical*-1,horizontal).normalized()
#self.rotation = rotVector.angle()
if rotVector != Vector2(0,0):
var rotationTween = get_tree().create_tween()
rotationTween.tween_property(self,"global_rotation",rotVector.angle(),0.1)
if is_equal_approx(abs(vertical),1.0) and is_equal_approx(abs(horizontal),1.0):
velocity.y = SPEED*vertical/2
velocity.x = SPEED*horizontal/2
else:
velocity.y = SPEED * vertical
velocity.x = SPEED * horizontal
move_and_slide()
$"../Camera2D/Label".text = (str(vertical)+" "+str(horizontal) + "vector:"+str(rotVector))