Camera look-aside

This commit is contained in:
Rakarake 2024-10-21 13:51:47 +02:00
parent 3edd225cb4
commit 6021b79707
2 changed files with 29 additions and 16 deletions

View file

@ -9,6 +9,7 @@ func current_state():
@onready var stm = $StateMachine @onready var stm = $StateMachine
@onready var animation_player = $AnimationPlayer @onready var animation_player = $AnimationPlayer
@onready var player_character_sprite = $PlayerCharacterSprite @onready var player_character_sprite = $PlayerCharacterSprite
@onready var camera = $Camera
@onready var air = $StateMachine/Air @onready var air = $StateMachine/Air
@onready var run = $StateMachine/Run @onready var run = $StateMachine/Run
@onready var dash = $StateMachine/Dash @onready var dash = $StateMachine/Dash
@ -36,6 +37,8 @@ var hit_time_tmp: float
var hit_active := false var hit_active := false
@export var pogo_jump: float @export var pogo_jump: float
@export var camera_look_aside := 0.0
@export var camera_look_aside_transition_speed := 0.0
var lives := 5 var lives := 5
@ -48,6 +51,7 @@ var previous_input_dir := get_dir()
var previous_velocity := Vector2.ZERO var previous_velocity := Vector2.ZERO
func _ready(): func _ready():
camera
stm.state_debug_stat = { "key": "player state" } stm.state_debug_stat = { "key": "player state" }
stm.state_debug_log = { "description": "player state" } stm.state_debug_log = { "description": "player state" }
air.jump_debug_stat = { "key": "player jump curve" } air.jump_debug_stat = { "key": "player jump curve" }
@ -80,6 +84,13 @@ func play_anim(anim_name):
func _physics_process(delta): func _physics_process(delta):
# Looking right (both animation and logic) # Looking right (both animation and logic)
update_looking_right() update_looking_right()
# Update camera position
var camera_pos_target = camera_look_aside if looking_right else - camera_look_aside
camera.position.x = lerp(
camera.position.x,
camera_pos_target,
delta * camera_look_aside_transition_speed
)
# Flip player nodes that want to be flipped # Flip player nodes that want to be flipped
for child in self.find_children("*"): for child in self.find_children("*"):
if child.is_in_group("flip_me"): if child.is_in_group("flip_me"):

View file

@ -185,6 +185,21 @@ height = 158.0
radius = 60.0 radius = 60.0
height = 156.0 height = 156.0
[sub_resource type="Animation" id="Animation_q7xwy"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("StateMachine/Dash/DashParticles:emitting")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_4posc"] [sub_resource type="Animation" id="Animation_4posc"]
resource_name = "dash" resource_name = "dash"
length = 0.3 length = 0.3
@ -201,21 +216,6 @@ tracks/0/keys = {
"values": [true, false] "values": [true, false]
} }
[sub_resource type="Animation" id="Animation_q7xwy"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("StateMachine/Dash/DashParticles:emitting")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6txnh"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_6txnh"]
_data = { _data = {
"RESET": SubResource("Animation_q7xwy"), "RESET": SubResource("Animation_q7xwy"),
@ -231,6 +231,8 @@ double_jump_delay = 0.1
dash_time = 0.22 dash_time = 0.22
hit_time = 0.2 hit_time = 0.2
pogo_jump = 300.0 pogo_jump = 300.0
camera_look_aside = 40.0
camera_look_aside_transition_speed = 3.0
[node name="StateMachine" type="Node2D" parent="."] [node name="StateMachine" type="Node2D" parent="."]
script = ExtResource("2_ae3rk") script = ExtResource("2_ae3rk")
@ -278,7 +280,7 @@ position = Vector2(0, 4)
shape = SubResource("RectangleShape2D_wvy82") shape = SubResource("RectangleShape2D_wvy82")
debug_color = Color(0.7, 0.408333, 0, 0.419608) debug_color = Color(0.7, 0.408333, 0, 0.419608)
[node name="Camera2D" type="Camera2D" parent="."] [node name="Camera" type="Camera2D" parent="." groups=["flip_me"]]
process_callback = 0 process_callback = 0
position_smoothing_enabled = true position_smoothing_enabled = true
editor_draw_limits = true editor_draw_limits = true