Tweak the UI, ensure view resolution is constant
This commit is contained in:
parent
669b3e22b2
commit
56fc6eb8d3
4 changed files with 93 additions and 42 deletions
17
Camera2DScript.gd
Normal file
17
Camera2DScript.gd
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
extends Camera2D
|
||||||
|
|
||||||
|
const TARGET_MIN_DIM = 800.0
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
var viewport_size = get_viewport_rect().size
|
||||||
|
var min_xy = viewport_size.x if viewport_size.x < viewport_size.y else viewport_size.y
|
||||||
|
var ratio = min_xy / TARGET_MIN_DIM
|
||||||
|
zoom.x += (ratio - zoom.x) * 0.005
|
||||||
|
zoom.y = zoom.x
|
||||||
|
print_debug(scale)
|
|
@ -18,11 +18,11 @@ var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||||
var health = 5
|
var health = 5
|
||||||
var hurt_timer = 0.0
|
var hurt_timer = 0.0
|
||||||
|
|
||||||
@onready var text_label = $RichTextLabel
|
@onready var text_label = $TimerLabel
|
||||||
var text_timer = 0.0
|
var text_timer = 0.0
|
||||||
var text_format = "%.1f"
|
var text_format = "%.1f"
|
||||||
|
|
||||||
@onready var health_label = $RichTextLabel2
|
@onready var health_label = $HPLabel
|
||||||
var health_text_format = "%d"
|
var health_text_format = "%d"
|
||||||
|
|
||||||
@onready var self_sprite = $Sprite2D
|
@onready var self_sprite = $Sprite2D
|
||||||
|
@ -39,11 +39,21 @@ var title_timer = 5.0
|
||||||
@onready var touch_left = $LeftTouchButton
|
@onready var touch_left = $LeftTouchButton
|
||||||
@onready var touch_right = $RightTouchButton
|
@onready var touch_right = $RightTouchButton
|
||||||
|
|
||||||
|
@onready var jump_label = $JumpTouchButton/JumpLabel
|
||||||
|
@onready var left_label = $LeftTouchButton/LeftLabel
|
||||||
|
@onready var right_label = $RightTouchButton/RightLabel
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
self_sprite.self_modulate = DEFAULT_COLOR
|
self_sprite.self_modulate = DEFAULT_COLOR
|
||||||
health_label.add_text(health_text_format % health)
|
health_label.text = health_text_format % health
|
||||||
title_text.add_theme_font_size_override("normal_font_size", 40)
|
title_text.add_theme_font_size_override("normal_font_size", 40)
|
||||||
title_text.add_text("LD54 - Box Survival\nBy: BurnedKirby\nMade in Godot\nWAD or Touch to move")
|
title_text.add_text("LD54 - Box Survival\nBy: BurnedKirby\nMade in Godot\nWAD or Touch to move")
|
||||||
|
var somewhat_transparent_color = Color(1, 1, 1, 0.3)
|
||||||
|
text_label.label_settings.font_color = somewhat_transparent_color
|
||||||
|
health_label.label_settings.font_color = somewhat_transparent_color
|
||||||
|
jump_label.label_settings.font_color = somewhat_transparent_color
|
||||||
|
left_label.label_settings.font_color = somewhat_transparent_color
|
||||||
|
right_label.label_settings.font_color = somewhat_transparent_color
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
if title_timer > 0.0:
|
if title_timer > 0.0:
|
||||||
|
@ -51,13 +61,18 @@ func _physics_process(delta):
|
||||||
if title_timer < 0.0:
|
if title_timer < 0.0:
|
||||||
title_timer = 0.0
|
title_timer = 0.0
|
||||||
title_text.get_parent().remove_child(title_text)
|
title_text.get_parent().remove_child(title_text)
|
||||||
|
var white = Color(1, 1, 1, 1)
|
||||||
|
text_label.label_settings.font_color = white
|
||||||
|
health_label.label_settings.font_color = white
|
||||||
|
jump_label.label_settings.font_color = white
|
||||||
|
left_label.label_settings.font_color = white
|
||||||
|
right_label.label_settings.font_color = white
|
||||||
|
|
||||||
if health <= 0:
|
if health <= 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
text_timer += delta
|
text_timer += delta
|
||||||
text_label.clear()
|
text_label.text = text_format % text_timer
|
||||||
text_label.add_text(text_format % text_timer)
|
|
||||||
|
|
||||||
# Add the gravity.
|
# Add the gravity.
|
||||||
if not is_on_floor():
|
if not is_on_floor():
|
||||||
|
@ -101,8 +116,7 @@ func damaged(projectile):
|
||||||
spawn_particle(projectile_color)
|
spawn_particle(projectile_color)
|
||||||
if hurt_timer == 0.0:
|
if hurt_timer == 0.0:
|
||||||
health -= 1
|
health -= 1
|
||||||
health_label.clear()
|
health_label.text = health_text_format % health
|
||||||
health_label.add_text(health_text_format % health)
|
|
||||||
self_sprite.self_modulate = HURT_COLOR
|
self_sprite.self_modulate = HURT_COLOR
|
||||||
hurt_timer = HURT_TIME
|
hurt_timer = HURT_TIME
|
||||||
hit_sfx.play()
|
hit_sfx.play()
|
||||||
|
|
86
player.tscn
86
player.tscn
|
@ -1,6 +1,7 @@
|
||||||
[gd_scene load_steps=8 format=3 uid="uid://dv8hwks0xe3c0"]
|
[gd_scene load_steps=14 format=3 uid="uid://dv8hwks0xe3c0"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://PlayerCharacterBody2D.gd" id="1_8l13s"]
|
[ext_resource type="Script" path="res://PlayerCharacterBody2D.gd" id="1_8l13s"]
|
||||||
|
[ext_resource type="Script" path="res://Camera2DScript.gd" id="2_hpvt4"]
|
||||||
[ext_resource type="AudioStream" uid="uid://b88dh38cr8v6o" path="res://res/jump.ogg" id="2_ix2ut"]
|
[ext_resource type="AudioStream" uid="uid://b88dh38cr8v6o" path="res://res/jump.ogg" id="2_ix2ut"]
|
||||||
[ext_resource type="AudioStream" uid="uid://jfrsvixicrf" path="res://res/hit.ogg" id="3_gq63f"]
|
[ext_resource type="AudioStream" uid="uid://jfrsvixicrf" path="res://res/hit.ogg" id="3_gq63f"]
|
||||||
|
|
||||||
|
@ -10,16 +11,30 @@ size = Vector2(40, 40)
|
||||||
[sub_resource type="CanvasTexture" id="CanvasTexture_ruce8"]
|
[sub_resource type="CanvasTexture" id="CanvasTexture_ruce8"]
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_v7mm3"]
|
[sub_resource type="Gradient" id="Gradient_v7mm3"]
|
||||||
colors = PackedColorArray(1, 1, 1, 0.454902, 1, 1, 1, 0)
|
offsets = PackedFloat32Array(0.524194, 1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.117647)
|
||||||
|
|
||||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_iin72"]
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_iin72"]
|
||||||
gradient = SubResource("Gradient_v7mm3")
|
gradient = SubResource("Gradient_v7mm3")
|
||||||
width = 128
|
width = 256
|
||||||
height = 128
|
height = 256
|
||||||
fill = 1
|
fill = 1
|
||||||
fill_from = Vector2(0.5, 0.5)
|
fill_from = Vector2(0.5, 0.5)
|
||||||
fill_to = Vector2(1, 0.5)
|
fill_to = Vector2(1, 0.5)
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_2gn5h"]
|
||||||
|
font_size = 30
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_wp0cg"]
|
||||||
|
font_size = 30
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_wxt3j"]
|
||||||
|
font_size = 30
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_oauio"]
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_vkr7b"]
|
||||||
|
|
||||||
[node name="CharacterBody2D" type="CharacterBody2D"]
|
[node name="CharacterBody2D" type="CharacterBody2D"]
|
||||||
position = Vector2(590, 561)
|
position = Vector2(590, 561)
|
||||||
collision_layer = 3
|
collision_layer = 3
|
||||||
|
@ -34,55 +49,60 @@ scale = Vector2(40, 40)
|
||||||
texture = SubResource("CanvasTexture_ruce8")
|
texture = SubResource("CanvasTexture_ruce8")
|
||||||
|
|
||||||
[node name="JumpTouchButton" type="TouchScreenButton" parent="."]
|
[node name="JumpTouchButton" type="TouchScreenButton" parent="."]
|
||||||
position = Vector2(-64, -159)
|
position = Vector2(-127, -279)
|
||||||
texture_normal = SubResource("GradientTexture2D_iin72")
|
texture_normal = SubResource("GradientTexture2D_iin72")
|
||||||
action = "jump"
|
action = "jump"
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="JumpTouchButton"]
|
[node name="JumpLabel" type="Label" parent="JumpTouchButton"]
|
||||||
offset_left = 42.0
|
offset_left = 89.0
|
||||||
offset_top = 52.0
|
offset_top = 105.0
|
||||||
offset_right = 83.0
|
offset_right = 165.0
|
||||||
offset_bottom = 75.0
|
offset_bottom = 147.0
|
||||||
text = "Jump"
|
text = "Jump"
|
||||||
|
label_settings = SubResource("LabelSettings_2gn5h")
|
||||||
|
|
||||||
[node name="RightTouchButton" type="TouchScreenButton" parent="."]
|
[node name="RightTouchButton" type="TouchScreenButton" parent="."]
|
||||||
position = Vector2(53, -60)
|
position = Vector2(23, -20)
|
||||||
texture_normal = SubResource("GradientTexture2D_iin72")
|
texture_normal = SubResource("GradientTexture2D_iin72")
|
||||||
action = "right"
|
action = "right"
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="RightTouchButton"]
|
[node name="RightLabel" type="Label" parent="RightTouchButton"]
|
||||||
offset_left = 43.0
|
offset_left = 90.0
|
||||||
offset_top = 53.0
|
offset_top = 106.0
|
||||||
offset_right = 84.0
|
offset_right = 165.0
|
||||||
offset_bottom = 76.0
|
offset_bottom = 148.0
|
||||||
text = "Right"
|
text = "Right"
|
||||||
|
label_settings = SubResource("LabelSettings_wp0cg")
|
||||||
|
|
||||||
[node name="LeftTouchButton" type="TouchScreenButton" parent="."]
|
[node name="LeftTouchButton" type="TouchScreenButton" parent="."]
|
||||||
position = Vector2(-184, -60)
|
position = Vector2(-279, -20)
|
||||||
texture_normal = SubResource("GradientTexture2D_iin72")
|
texture_normal = SubResource("GradientTexture2D_iin72")
|
||||||
action = "left"
|
action = "left"
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="LeftTouchButton"]
|
[node name="LeftLabel" type="Label" parent="LeftTouchButton"]
|
||||||
offset_left = 47.0
|
offset_left = 100.0
|
||||||
offset_top = 53.0
|
offset_top = 99.0
|
||||||
offset_right = 88.0
|
offset_right = 156.0
|
||||||
offset_bottom = 76.0
|
offset_bottom = 141.0
|
||||||
text = "Left"
|
text = "Left"
|
||||||
|
label_settings = SubResource("LabelSettings_wxt3j")
|
||||||
|
|
||||||
[node name="Camera2D" type="Camera2D" parent="."]
|
[node name="Camera2D" type="Camera2D" parent="."]
|
||||||
zoom = Vector2(1.4, 1.4)
|
script = ExtResource("2_hpvt4")
|
||||||
|
|
||||||
[node name="RichTextLabel" type="RichTextLabel" parent="."]
|
[node name="TimerLabel" type="Label" parent="."]
|
||||||
offset_left = 35.0
|
offset_left = -23.0
|
||||||
offset_top = 36.0
|
offset_top = 50.0
|
||||||
offset_right = 151.0
|
offset_right = 70.0
|
||||||
offset_bottom = 76.0
|
offset_bottom = 122.0
|
||||||
|
label_settings = SubResource("LabelSettings_oauio")
|
||||||
|
|
||||||
[node name="RichTextLabel2" type="RichTextLabel" parent="."]
|
[node name="HPLabel" type="Label" parent="."]
|
||||||
offset_left = -61.0
|
offset_left = -8.0
|
||||||
offset_top = -62.0
|
offset_top = 23.0
|
||||||
offset_right = -21.0
|
offset_right = 7.0
|
||||||
offset_bottom = -22.0
|
offset_bottom = 47.0
|
||||||
|
label_settings = SubResource("LabelSettings_vkr7b")
|
||||||
|
|
||||||
[node name="JumpSFX" type="AudioStreamPlayer" parent="."]
|
[node name="JumpSFX" type="AudioStreamPlayer" parent="."]
|
||||||
stream = ExtResource("2_ix2ut")
|
stream = ExtResource("2_ix2ut")
|
||||||
|
|
|
@ -21,8 +21,8 @@ driver/output_latency.web=100
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=550
|
window/size/viewport_width=800
|
||||||
window/size/viewport_height=550
|
window/size/viewport_height=800
|
||||||
window/size/mode=2
|
window/size/mode=2
|
||||||
window/size/resizable=false
|
window/size/resizable=false
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue