Compare commits

...

5 commits

Author SHA1 Message Date
a42a258f08 add basic level director 2025-11-18 15:07:09 -03:00
1174518359 move classes to root folder 2025-11-18 14:55:51 -03:00
2d45795632 remove unused scenes 2025-11-18 14:51:18 -03:00
e105aedfa2 extra empty vars 2025-11-18 14:29:05 -03:00
375866ea07 add ball class 2025-11-18 14:28:53 -03:00
23 changed files with 52 additions and 32 deletions

View file

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://d04legmj3c42r"]
[ext_resource type="Script" uid="uid://b440ri3521uio" path="res://scenes/classes/hit/hit.gd" id="1_udkr8"]
[ext_resource type="Script" uid="uid://b440ri3521uio" path="res://classes/hit/hit.gd" id="1_udkr8"]
[node name="Hit2D" type="Area2D" groups=["hit"]]
collision_layer = 64

View file

@ -10,6 +10,9 @@ class_name Level extends Node2D
@export var block_layer: BlockTileLayer
#@export var goal_layer: GoalTileLayer
var player_1: Player
var player_2: Player
var ball: Ball
func _ready() -> void:
# :sheesh:

View file

@ -0,0 +1,33 @@
class_name LevelState extends State
const PAUSED = "Paused"
const STARTING = "Starting"
const SCORING = "Scoring"
var level: Level
func _ready() -> void:
await owner.ready
level = owner as Level
assert(level != null, "The LevelState state type must be used only in the level scene. It needs the owner to be a Level node.")
func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
pass
func _exit() -> void:
pass
func _handle_input(_event: InputEvent) -> void:
pass
func _state_update(_delta: float) -> void:
pass
func _state_physics_update(_delta: float) -> void:
pass

View file

@ -0,0 +1 @@
uid://dioh6egp2x760

View file

@ -1,4 +1,4 @@
extends RigidBody2D
class_name Ball extends RigidBody2D
@onready var hurtbox: Area2D = $HurtArea2D
@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D

View file

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://dr4fwwrukyko0"]
[ext_resource type="Script" uid="uid://dhvek22isq1ts" path="res://scenes/classes/level/level.gd" id="1_fds1s"]
[node name="Level" type="Node2D"]
script = ExtResource("1_fds1s")

View file

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://delu380dsl2kl"]
[ext_resource type="Script" uid="uid://b2sr7p80gdjii" path="res://scenes/classes/state/player_state.gd" id="1_opnr7"]
[node name="PlayerState" type="Node"]
script = ExtResource("1_opnr7")

View file

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://kyeowhvglgj2"]
[ext_resource type="Script" uid="uid://bpjerj832q2gf" path="res://scenes/classes/state/state.gd" id="1_m4c3p"]
[node name="State" type="Node"]
script = ExtResource("1_m4c3p")

View file

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://cy4h0xcy2kscg"]
[ext_resource type="Script" uid="uid://dqjaxgmyxq3rx" path="res://scenes/classes/state_machine/state_machine.gd" id="1_rnohx"]
[node name="StateMachine" type="Node"]
script = ExtResource("1_rnohx")

View file

@ -1,6 +1,6 @@
[gd_scene load_steps=4 format=3 uid="uid://d0c57c37o75b0"]
[ext_resource type="Script" uid="uid://b440ri3521uio" path="res://scenes/classes/hit/hit.gd" id="1_kwsj5"]
[ext_resource type="Script" uid="uid://b440ri3521uio" path="res://classes/hit/hit.gd" id="1_kwsj5"]
[ext_resource type="Texture2D" uid="uid://c6a62gvw7218s" path="res://scenes/hit/assets/hit.png" id="2_kwsj5"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_kwsj5"]

View file

@ -1,6 +1,6 @@
[gd_scene load_steps=4 format=3 uid="uid://px67runjx6ex"]
[ext_resource type="Script" uid="uid://b440ri3521uio" path="res://scenes/classes/hit/hit.gd" id="1_dk3vy"]
[ext_resource type="Script" uid="uid://b440ri3521uio" path="res://classes/hit/hit.gd" id="1_dk3vy"]
[ext_resource type="Texture2D" uid="uid://c6a62gvw7218s" path="res://scenes/hit/assets/hit.png" id="1_rmj1p"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_fxeki"]

View file

@ -7,9 +7,9 @@ enum FollowTarget { BALL, PLAYER1, PLAYER2 }
@export var follow_speed: float = 8.0
@export var deadzone_margin: float = 100.0
@onready var ball: RigidBody2D = get_node("../Ball")
@onready var player1: CharacterBody2D = get_node("../Player1")
@onready var player2: CharacterBody2D = get_node("../Player2")
@onready var ball: Ball = get_node("../Ball")
@onready var player1: Player = get_node("../Player1")
@onready var player2: Player = get_node("../Player2")
var target_pos: Vector2 = Vector2.ZERO

View file

@ -0,0 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://4eo7g5abxolw"]
[ext_resource type="Script" uid="uid://dqjaxgmyxq3rx" path="res://classes/state_machine/state_machine.gd" id="1_4q8ux"]
[node name="LevelDirector" type="Node"]
script = ExtResource("1_4q8ux")
metadata/_custom_type_script = "uid://dqjaxgmyxq3rx"

View file

@ -3,7 +3,7 @@
[ext_resource type="Script" uid="uid://rdqmsvofiots" path="res://scenes/player/player.gd" id="1_v6fml"]
[ext_resource type="Texture2D" uid="uid://b8ptokcqwpdud" path="res://scenes/player/saffron.png" id="2_3li8b"]
[ext_resource type="Texture2D" uid="uid://ca744qwgmwejx" path="res://scenes/player/assets/bnuuy-spritesheet.png" id="3_0owmy"]
[ext_resource type="Script" uid="uid://dqjaxgmyxq3rx" path="res://scenes/classes/state_machine/state_machine.gd" id="3_lvxji"]
[ext_resource type="Script" uid="uid://dqjaxgmyxq3rx" path="res://classes/state_machine/state_machine.gd" id="3_lvxji"]
[ext_resource type="Script" uid="uid://delyni51vg6us" path="res://scenes/player/states/idle.gd" id="4_75vfm"]
[ext_resource type="Script" uid="uid://dxfs1b8fuk7kv" path="res://scenes/player/states/running.gd" id="5_75vfm"]
[ext_resource type="Script" uid="uid://n7v8leojhykt" path="res://scenes/player/states/hitting.gd" id="6_75vfm"]