Compare commits
2 commits
61a0c34822
...
8f0d4b1b68
| Author | SHA1 | Date | |
|---|---|---|---|
| 8f0d4b1b68 | |||
| c48bd8b1f6 |
10 changed files with 55 additions and 3 deletions
|
|
@ -11,6 +11,8 @@ class_name Level extends Node2D
|
|||
@export var block_layer: BlockTileLayer
|
||||
#@export var goal_layer: GoalTileLayer
|
||||
|
||||
@onready var player_scene: PackedScene = preload("res://scenes/player/player.tscn")
|
||||
|
||||
var player_1: Player
|
||||
var player_2: Player
|
||||
var ball: Ball
|
||||
|
|
|
|||
49
scenes/levels/states/level_starting.gd
Normal file
49
scenes/levels/states/level_starting.gd
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
extends LevelState
|
||||
|
||||
|
||||
func _enter(_previous_state_path: String, _data: Dictionary = {"round": 0, "restart": false}) -> void:
|
||||
assert((_data["round"] as int) in range(3), "round number is invalid")
|
||||
assert(
|
||||
(_data["restart"] as bool) == true or
|
||||
(_data["restart"] as bool) == false,
|
||||
"round restart data is invalid"
|
||||
)
|
||||
level.current_round = _data["round"]
|
||||
level.restarted = _data["restart"]
|
||||
if level.restarted:
|
||||
level.current_round = 0
|
||||
level.scoreboard = Vector2i(0,0)
|
||||
level.restarted = false
|
||||
|
||||
if level.current_round + 1 == 4:
|
||||
finished.emit(FINISHING)
|
||||
|
||||
assert(
|
||||
(level.player_1 != null and level.player_2 != null) or
|
||||
(level.player_1 == null and level.player_2 == null),
|
||||
"desynced player instantiation?"
|
||||
)
|
||||
|
||||
if level.player_1 != null and level.player_2 != null:
|
||||
level.player_1.queue_free()
|
||||
level.player_2.queue_free()
|
||||
|
||||
level.current_round += 1
|
||||
|
||||
level.player_1 = _instantiate_player(1)
|
||||
level.player_2 = _instantiate_player(2)
|
||||
|
||||
func _instantiate_player(id: int) -> Player:
|
||||
var p: Player = level.player_1 if id == 1 else level.player_2
|
||||
var s: PlayerSpawnPoint = level.player_1_spawn if id == 1 else level.player_2_spawn
|
||||
|
||||
p = level.player_scene.instantiate()
|
||||
p.id = id
|
||||
p.name = "Player"+str(id)
|
||||
|
||||
level.add_child(p)
|
||||
|
||||
p.global_position = s.global_position
|
||||
p.global_position = s.global_position
|
||||
|
||||
return p
|
||||
1
scenes/levels/states/level_starting.gd.uid
Normal file
1
scenes/levels/states/level_starting.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dikxx4j1auywf
|
||||
|
|
@ -4,9 +4,9 @@
|
|||
[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://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"]
|
||||
[ext_resource type="Script" uid="uid://delyni51vg6us" path="res://scenes/player/states/player_idle.gd" id="4_75vfm"]
|
||||
[ext_resource type="Script" uid="uid://dxfs1b8fuk7kv" path="res://scenes/player/states/player_running.gd" id="5_75vfm"]
|
||||
[ext_resource type="Script" uid="uid://n7v8leojhykt" path="res://scenes/player/states/player_hitting.gd" id="6_75vfm"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_gx1jg"]
|
||||
length = 0.001
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue