gover man!

This commit is contained in:
pennyrigate 2025-12-31 17:29:49 -05:00
parent 55059788b2
commit 81b01b7508
8 changed files with 185 additions and 36 deletions

View file

@ -6,19 +6,30 @@ extends Node
@export var lives = 2
@export var bombs = 3
#func _process(delta: float) -> void:
#print(Display.current_scene)
func change_score(amount):
score += amount
Hud.score_label = str("SCORE: ") + str(score)
Hud.score_label.text = str("SCORE: ") + str(score)
func change_graze(amount):
graze += amount
level_graze += amount
Hud.graze_label = str("GRAZE: ") + str(level_graze)
Hud.graze_label.text = str("GRAZE: ") + str(level_graze)
func change_lives(amount):
lives += amount
Hud.lives_label = str("LIVES: ") + str(lives)
lives = clamp(lives,-1,9)
Hud.lives_label.text = str("LIVES: ") + str(lives)
if lives < 0:
Hud.lives_label.text = str("LIVES: ") + str(0)
var Gover = load("res://menus/game_over.tscn")
var gover = Gover.instantiate()
#TODO implement properly
get_tree().paused = true
Display.viewport.add_child(gover)
func change_bombs(amount):
bombs += amount
Hud.bombs_label = str("BOMB: ") + str(bombs)
Hud.bombs_label.text = str("BOMB: ") + str(bombs)

View file

@ -3,4 +3,5 @@
[ext_resource type="Script" uid="uid://4lh6pskiiq1c" path="res://globals/currentgame.gd" id="1_0tn8j"]
[node name="CurrentGame" type="Node"]
process_mode = 3
script = ExtResource("1_0tn8j")

View file

@ -4,6 +4,7 @@
[ext_resource type="Script" uid="uid://p8hkie00rjtx" path="res://gui/hud.gd" id="1_u7rvv"]
[node name="Hud" type="CanvasLayer" groups=["viewport_autoload"]]
process_mode = 3
script = ExtResource("1_u7rvv")
[node name="Score" type="Label" parent="."]

154
menus/game_over.tscn Normal file
View file

@ -0,0 +1,154 @@
[gd_scene load_steps=5 format=3 uid="uid://caiqjh3ff6rym"]
[ext_resource type="FontFile" uid="uid://dseq0eyk0say1" path="res://fonts/Super Mario Bros. NES.ttf" id="1_v8xbx"]
[sub_resource type="Animation" id="Animation_mq8lb"]
resource_name = "gover"
length = 2.0
step = 0.0333333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:size")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.56666666),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(240, 0), Vector2(240, 320)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("GameOver:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1, 1.5333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(0, 0), Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("GameOver:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1, 1.5333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [0.0, 0.0, 6.283185307179586]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Retry?:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(1.7333333, 1.9333333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_slp2k"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:size")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(240, 320)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("GameOver:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("GameOver:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Retry?:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_hl86a"]
_data = {
&"RESET": SubResource("Animation_slp2k"),
&"gover": SubResource("Animation_mq8lb")
}
[node name="GameOver" type="Control" groups=["viewport_autoload"]]
process_mode = 3
layout_mode = 3
anchors_preset = 0
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 0
offset_right = 240.0
offset_bottom = 320.0
color = Color(0, 0, 0, 1)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_hl86a")
}
autoplay = "gover"
[node name="GameOver" type="Label" parent="."]
modulate = Color(1, 0, 0, 1)
layout_mode = 0
offset_left = 50.0
offset_top = 139.0
offset_right = 194.0
offset_bottom = 157.0
theme_override_fonts/font = ExtResource("1_v8xbx")
theme_override_font_sizes/font_size = 16
text = "GAME OVER"
[node name="Retry?" type="Label" parent="."]
layout_mode = 0
offset_left = 98.0
offset_top = 167.0
offset_right = 146.0
offset_bottom = 190.0
rotation = 6.2831855
theme_override_fonts/font = ExtResource("1_v8xbx")
theme_override_font_sizes/font_size = 8
text = "Retry?"
horizontal_alignment = 1
vertical_alignment = 1

View file

@ -7,23 +7,24 @@ extends CharacterBody2D
@export var move_focused_speed: float
@onready var startpos = position
var can_die = true
var focused: bool:
get(): return Input.is_action_pressed(&"focus")
func _physics_process(delta: float) -> void:
var input_dir = Input.get_vector(&"move_left", &"move_right", &"move_up", &"move_down").sign()
velocity = input_dir.normalized() * (move_focused_speed if focused else move_normal_speed)
move_and_slide()
func _on_hurtbox_area_entered(area: Area2D) -> void:
%DeathSound.play()
position = startpos
CurrentGame.change_lives(-1)
if CurrentGame.lives < 0:
gover()
if can_die:
%DeathSound.play()
position = startpos
CurrentGame.change_lives(-1)
can_die = false
func gover():
print("yeeeowtch!!!")

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=3 uid="uid://c714s5d7d5765"]
[gd_scene load_steps=12 format=3 uid="uid://c714s5d7d5765"]
[ext_resource type="Script" uid="uid://bpo15kuxdmulu" path="res://objects/player/player.gd" id="1_cqmt1"]
[ext_resource type="Texture2D" uid="uid://cre6i8tsdlt7j" path="res://graphics/player/player_1.png" id="2_jnjyq"]
@ -33,11 +33,7 @@ size = Vector2(22, 22)
[sub_resource type="CircleShape2D" id="CircleShape2D_gnkmh"]
radius = 13.038404
[sub_resource type="Gradient" id="Gradient_aeam7"]
offsets = PackedFloat32Array(0, 0.513333, 1)
colors = PackedColorArray(0, 0.647059, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1)
[node name="Player" type="CharacterBody2D"]
[node name="Player" type="CharacterBody2D" groups=["player"]]
collision_layer = 2
script = ExtResource("1_cqmt1")
move_normal_speed = 200.0
@ -84,21 +80,10 @@ debug_color = Color(0.7740294, 0.14773864, 0.99999994, 0.41960785)
unique_name_in_owner = true
stream = ExtResource("5_gnkmh")
[node name="GrazeParticles" type="CPUParticles2D" parent="." instance=ExtResource("6_xkryw")]
[node name="GrazeParticles" parent="." instance=ExtResource("6_xkryw")]
unique_name_in_owner = true
emitting = false
amount = 10
lifetime = 0.15
one_shot = true
speed_scale = 0.5
explosiveness = 0.6
randomness = 1.0
lifetime_randomness = 1.0
spread = 154.09
gravity = Vector2(0, 630)
initial_velocity_min = 251.99
initial_velocity_max = 484.86
color_ramp = SubResource("Gradient_aeam7")
script = null
[connection signal="area_entered" from="Hurtbox" to="." method="_on_hurtbox_area_entered"]
[connection signal="area_entered" from="GrazeBox" to="." method="_on_graze_box_area_entered"]

View file

@ -28,6 +28,7 @@ Hud="*res://gui/hud.tscn"
window/size/viewport_width=240
window/size/viewport_height=320
window/vsync/vsync_mode=0
[editor_plugins]
@ -46,6 +47,7 @@ folder_colors={
[global_group]
viewport_autoload=""
player=""
[input]

View file

@ -32,7 +32,7 @@ position = Vector2(124, 280)
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D2" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(246, 160)
position = Vector2(245, 160)
shape = SubResource("RectangleShape2D_ikr60")
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
@ -53,9 +53,3 @@ position = Vector2(124, 81)
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("5_wcm38")
autoplay = true
[node name="Label" type="Label" parent="."]
offset_right = 40.0
offset_bottom = 23.0
text = "SCORE: 000000000
GRAZE: 0"