Camera look-aside
This commit is contained in:
		
							parent
							
								
									3edd225cb4
								
							
						
					
					
						commit
						6021b79707
					
				
					 2 changed files with 29 additions and 16 deletions
				
			
		| 
						 | 
					@ -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"):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue