Camera refinement
This commit is contained in:
parent
9b3676fe2c
commit
b7deb8855c
@ -16,7 +16,6 @@ export var camera_horizontal_shift = 80
|
|||||||
export var offset_reset_seconds := 1
|
export var offset_reset_seconds := 1
|
||||||
export var offset_adapt_seconds := 0.8
|
export var offset_adapt_seconds := 0.8
|
||||||
|
|
||||||
onready var tween = $OffsetTween
|
|
||||||
onready var shiftLeft = $CameraAnimationPlayer.get_animation("shiftingLeft")
|
onready var shiftLeft = $CameraAnimationPlayer.get_animation("shiftingLeft")
|
||||||
onready var shiftRight = $CameraAnimationPlayer.get_animation("shiftingRight")
|
onready var shiftRight = $CameraAnimationPlayer.get_animation("shiftingRight")
|
||||||
onready var shiftCenter = $CameraAnimationPlayer.get_animation("shiftingCenter")
|
onready var shiftCenter = $CameraAnimationPlayer.get_animation("shiftingCenter")
|
||||||
@ -42,7 +41,6 @@ func _ready():
|
|||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
if(!GlobalState.is_dead):
|
if(!GlobalState.is_dead):
|
||||||
#print(get_camera_screen_center().x - blobby.global_position.x)
|
|
||||||
var player_vel = blobby.velocity
|
var player_vel = blobby.velocity
|
||||||
if(abs(player_vel.x) >= blobby.max_velocity["walk"]):
|
if(abs(player_vel.x) >= blobby.max_velocity["walk"]):
|
||||||
move_time += delta
|
move_time += delta
|
||||||
@ -85,36 +83,38 @@ func _set_boundaries():
|
|||||||
zoom.y = v_pixels / screen_size.end.y
|
zoom.y = v_pixels / screen_size.end.y
|
||||||
zoom.x = zoom.y
|
zoom.x = zoom.y
|
||||||
|
|
||||||
# TODO Smoothing the camera limits in godot ruins this still?
|
# Smoothing the camera limits in godot ruins something
|
||||||
func _adapt_to_movement(velocity: Vector2) -> void:
|
func _adapt_to_movement(velocity: Vector2) -> void:
|
||||||
var offset_track
|
var offset_track
|
||||||
|
var center = get_camera_screen_center()
|
||||||
|
var left_edge_pos = center.x - screen_rect.x/2 + camera_horizontal_shift
|
||||||
|
var right_edge_pos = center.x + screen_rect.x/2 - camera_horizontal_shift
|
||||||
if(move_time >= offset_adapt_seconds && !anim_player.is_playing()):
|
if(move_time >= offset_adapt_seconds && !anim_player.is_playing()):
|
||||||
target_offset.x = camera_horizontal_shift * sign(velocity.x)
|
target_offset.x = camera_horizontal_shift * sign(velocity.x)
|
||||||
if(sign(velocity.x) < 0):
|
if(sign(velocity.x) < 0):
|
||||||
offset_track = shiftLeft.find_track(".:offset")
|
offset_track = shiftLeft.find_track(".:offset")
|
||||||
shiftLeft.track_set_key_value(offset_track, 0, offset)
|
shiftLeft.track_set_key_value(offset_track, 0, offset)
|
||||||
shiftLeft.track_set_key_value(offset_track, 1, target_offset)
|
shiftLeft.track_set_key_value(offset_track, 1, target_offset)
|
||||||
limit_left = original_limit_left + camera_horizontal_shift
|
# limit_left = original_limit_left + camera_horizontal_shift
|
||||||
|
var limit_left_track = shiftLeft.find_track(".:limit_left")
|
||||||
|
var new_limit_left = original_limit_left + camera_horizontal_shift
|
||||||
|
shiftLeft.track_set_key_value(limit_left_track, 0, limit_left)
|
||||||
|
shiftLeft.track_set_key_value(limit_left_track, 1, new_limit_left)
|
||||||
|
print("shiftleft")
|
||||||
anim_player.play("shiftingLeft")
|
anim_player.play("shiftingLeft")
|
||||||
else:
|
else:
|
||||||
offset_track = shiftRight.find_track(".:offset")
|
offset_track = shiftRight.find_track(".:offset")
|
||||||
shiftRight.track_set_key_value(offset_track, 0, offset)
|
shiftRight.track_set_key_value(offset_track, 0, offset)
|
||||||
shiftRight.track_set_key_value(offset_track, 1, target_offset)
|
shiftRight.track_set_key_value(offset_track, 1, target_offset)
|
||||||
limit_right = original_limit_right - camera_horizontal_shift
|
# limit_right = original_limit_right - camera_horizontal_shift
|
||||||
|
var limit_right_track = shiftRight.find_track(".:limit_right")
|
||||||
|
var new_limit_right = original_limit_right - camera_horizontal_shift
|
||||||
|
shiftRight.track_set_key_value(limit_right_track, 0, limit_right)
|
||||||
|
shiftRight.track_set_key_value(limit_right_track, 1, new_limit_right)
|
||||||
|
print("shiftright")
|
||||||
anim_player.play("shiftingRight")
|
anim_player.play("shiftingRight")
|
||||||
if(slow_time >= offset_reset_seconds):
|
elif(slow_time >= offset_reset_seconds && !anim_player.is_playing()):
|
||||||
var center = get_camera_screen_center()
|
if(left_edge_pos > limit_left && limit_right > right_edge_pos):
|
||||||
var left_edge_pos = center.x - screen_rect.x/2 + camera_horizontal_shift
|
|
||||||
var right_edge_pos = center.x + screen_rect.x/2 - camera_horizontal_shift
|
|
||||||
print("left_edge")
|
|
||||||
print(left_edge_pos)
|
|
||||||
print("limit_left")
|
|
||||||
print(limit_left)
|
|
||||||
print("right_edge")
|
|
||||||
print(right_edge_pos)
|
|
||||||
print("limit_right")
|
|
||||||
print(limit_right)
|
|
||||||
if(left_edge_pos > limit_left && limit_right > right_edge_pos && !anim_player.is_playing()):
|
|
||||||
target_offset.x = 0
|
target_offset.x = 0
|
||||||
offset_track = shiftCenter.find_track(".:offset")
|
offset_track = shiftCenter.find_track(".:offset")
|
||||||
shiftCenter.track_set_key_value(offset_track, 0, offset)
|
shiftCenter.track_set_key_value(offset_track, 0, offset)
|
||||||
@ -131,9 +131,17 @@ func _adapt_to_movement(velocity: Vector2) -> void:
|
|||||||
shiftCenter.track_set_key_value(limit_right_track, 1,original_limit_right)
|
shiftCenter.track_set_key_value(limit_right_track, 1,original_limit_right)
|
||||||
shiftCenter.track_set_key_value(limit_top_track, 1, original_limit_top)
|
shiftCenter.track_set_key_value(limit_top_track, 1, original_limit_top)
|
||||||
shiftCenter.track_set_key_value(limit_bottom_track, 1, original_limit_bottom)
|
shiftCenter.track_set_key_value(limit_bottom_track, 1, original_limit_bottom)
|
||||||
|
print("shiftcenter")
|
||||||
anim_player.play("shiftingCenter")
|
anim_player.play("shiftingCenter")
|
||||||
|
# reset_limits()
|
||||||
position = blobby.position
|
position = blobby.position
|
||||||
|
|
||||||
|
func reset_limits() -> void:
|
||||||
|
limit_left = original_limit_left
|
||||||
|
limit_right = original_limit_right
|
||||||
|
limit_bottom = original_limit_bottom
|
||||||
|
limit_top = original_limit_top
|
||||||
|
|
||||||
func _death_cam():
|
func _death_cam():
|
||||||
$CameraAnimationPlayer.play("deathCam")
|
$CameraAnimationPlayer.play("deathCam")
|
||||||
|
|
||||||
|
|||||||
@ -305,7 +305,7 @@ tracks/9/keys = {
|
|||||||
|
|
||||||
[sub_resource type="Animation" id=11]
|
[sub_resource type="Animation" id=11]
|
||||||
resource_name = "shiftingCenter"
|
resource_name = "shiftingCenter"
|
||||||
length = 0.6
|
length = 0.8
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/path = NodePath(".:offset")
|
tracks/0/path = NodePath(".:offset")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
@ -313,7 +313,7 @@ tracks/0/loop_wrap = true
|
|||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PoolRealArray( 0, 0.6 ),
|
"times": PoolRealArray( 0, 0.8 ),
|
||||||
"transitions": PoolRealArray( 1, 1.6 ),
|
"transitions": PoolRealArray( 1, 1.6 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ]
|
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ]
|
||||||
@ -325,8 +325,8 @@ tracks/1/loop_wrap = true
|
|||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PoolRealArray( 0, 0.6 ),
|
"times": PoolRealArray( 0, 0.8 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1, 1.6 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ -10000000, -10000000 ]
|
"values": [ -10000000, -10000000 ]
|
||||||
}
|
}
|
||||||
@ -337,8 +337,8 @@ tracks/2/loop_wrap = true
|
|||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
tracks/2/enabled = true
|
tracks/2/enabled = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
"times": PoolRealArray( 0, 0.6 ),
|
"times": PoolRealArray( 0, 0.8 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1, 1.6 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ -10000000, -10000000 ]
|
"values": [ -10000000, -10000000 ]
|
||||||
}
|
}
|
||||||
@ -349,8 +349,8 @@ tracks/3/loop_wrap = true
|
|||||||
tracks/3/imported = false
|
tracks/3/imported = false
|
||||||
tracks/3/enabled = true
|
tracks/3/enabled = true
|
||||||
tracks/3/keys = {
|
tracks/3/keys = {
|
||||||
"times": PoolRealArray( 0, 0.6 ),
|
"times": PoolRealArray( 0, 0.8 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1, 1.6 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ 10000000, 10000000 ]
|
"values": [ 10000000, 10000000 ]
|
||||||
}
|
}
|
||||||
@ -361,8 +361,8 @@ tracks/4/loop_wrap = true
|
|||||||
tracks/4/imported = false
|
tracks/4/imported = false
|
||||||
tracks/4/enabled = true
|
tracks/4/enabled = true
|
||||||
tracks/4/keys = {
|
tracks/4/keys = {
|
||||||
"times": PoolRealArray( 0, 0.6 ),
|
"times": PoolRealArray( 0, 0.8 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1, 0.6 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ 10000000, 10000000 ]
|
"values": [ 10000000, 10000000 ]
|
||||||
}
|
}
|
||||||
@ -378,10 +378,22 @@ tracks/0/imported = false
|
|||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PoolRealArray( 0, 0.6 ),
|
"times": PoolRealArray( 0, 0.6 ),
|
||||||
"transitions": PoolRealArray( 1, 1.6 ),
|
"transitions": PoolRealArray( 1, 0.6 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ]
|
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ]
|
||||||
}
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath(".:limit_left")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.6 ),
|
||||||
|
"transitions": PoolRealArray( 1, 0.6 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ -10000000, -10000000 ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=13]
|
[sub_resource type="Animation" id=13]
|
||||||
resource_name = "shiftingRight"
|
resource_name = "shiftingRight"
|
||||||
@ -394,10 +406,22 @@ tracks/0/imported = false
|
|||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PoolRealArray( 0, 0.6 ),
|
"times": PoolRealArray( 0, 0.6 ),
|
||||||
"transitions": PoolRealArray( 1, 1.6 ),
|
"transitions": PoolRealArray( 1, 0.6 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ]
|
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ]
|
||||||
}
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath(".:limit_right")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.6 ),
|
||||||
|
"transitions": PoolRealArray( 1, 0.6 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 10000000, 10000000 ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=9]
|
[sub_resource type="Animation" id=9]
|
||||||
resource_name = "Pulsing"
|
resource_name = "Pulsing"
|
||||||
@ -502,7 +526,7 @@ z_index = 3
|
|||||||
rotating = true
|
rotating = true
|
||||||
current = true
|
current = true
|
||||||
zoom = Vector2( 0.75, 0.75 )
|
zoom = Vector2( 0.75, 0.75 )
|
||||||
process_mode = 0
|
limit_smoothed = true
|
||||||
drag_margin_h_enabled = true
|
drag_margin_h_enabled = true
|
||||||
drag_margin_v_enabled = true
|
drag_margin_v_enabled = true
|
||||||
drag_margin_left = 0.05
|
drag_margin_left = 0.05
|
||||||
@ -511,8 +535,6 @@ drag_margin_right = 0.05
|
|||||||
editor_draw_drag_margin = true
|
editor_draw_drag_margin = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="OffsetTween" type="Tween" parent="."]
|
|
||||||
|
|
||||||
[node name="CameraAnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="CameraAnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
anims/RESET = SubResource( 5 )
|
anims/RESET = SubResource( 5 )
|
||||||
anims/deathCam = SubResource( 6 )
|
anims/deathCam = SubResource( 6 )
|
||||||
@ -609,10 +631,9 @@ texture = ExtResource( 8 )
|
|||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
visible = false
|
visible = false
|
||||||
frames = SubResource( 7 )
|
frames = SubResource( 7 )
|
||||||
frame = 6
|
frame = 9
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
frames = SubResource( 8 )
|
frames = SubResource( 8 )
|
||||||
frame = 11
|
|
||||||
playing = true
|
playing = true
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user