Player now jumps to a level start position. Level has a base class now.

This commit is contained in:
Nitsud Yarg 2024-06-23 11:50:53 -07:00
parent 87c0e8f05f
commit 62f29e8a18
9 changed files with 111 additions and 38 deletions

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=11 format=2]
[gd_scene load_steps=10 format=2]
[ext_resource path="res://src/Levels/Level.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/CameraControl-Position2D.gd" type="Script" id=5]
@ -10,10 +10,6 @@
[ext_resource path="res://icon.png" type="Texture" id=13]
[ext_resource path="res://src/playerD/Player.tscn" type="PackedScene" id=14]
[sub_resource type="SegmentShape2D" id=13]
a = Vector2( -1, -68 )
b = Vector2( -1, 349 )
[node name="Main" type="Node2D"]
[node name="Level" parent="." instance=ExtResource( 1 )]
@ -22,7 +18,7 @@ __meta__ = {
}
[node name="Player" parent="." instance=ExtResource( 14 )]
position = Vector2( 1063, 116 )
position = Vector2( 859, 236 )
[node name="CameraControl" type="Position2D" parent="."]
pause_mode = 2
@ -96,31 +92,9 @@ __meta__ = {
[node name="Timer" type="Timer" parent="CameraControl"]
wait_time = 1.5
[node name="CameraBoundaries" type="Area2D" parent="."]
collision_layer = 256
collision_mask = 0
__meta__ = {
"_edit_lock_": true
}
[node name="CollisionShape2D" type="CollisionShape2D" parent="CameraBoundaries"]
position = Vector2( 0, 66 )
shape = SubResource( 13 )
__meta__ = {
"_edit_lock_": true
}
[node name="CollisionShape2D2" type="CollisionShape2D" parent="CameraBoundaries"]
position = Vector2( 1281, 68 )
shape = SubResource( 13 )
__meta__ = {
"_edit_lock_": true
}
[node name="UI_Layer" type="CanvasLayer" parent="."]
pause_mode = 2
layer = 2
visible = false
script = ExtResource( 9 )
[node name="PanelContainer" type="PanelContainer" parent="UI_Layer"]

View File

@ -39,6 +39,11 @@ _global_script_classes=[ {
"language": "GDScript",
"path": "res://src/templates/Interactable/Interactable_Receiver.gd"
}, {
"base": "Node2D",
"class": "Level",
"language": "GDScript",
"path": "res://src/Level.gd"
}, {
"base": "Node",
"class": "MovementComponent",
"language": "GDScript",
@ -81,6 +86,7 @@ _global_script_class_icons={
"HealthPickup": "",
"Interactable": "",
"Interactable_Receiver": "",
"Level": "",
"MovementComponent": "",
"State": "",
"StateAnimatedActor": "",
@ -105,6 +111,7 @@ animation/layers/only_include_visible_layers_by_default=true
PlayerInfo="*res://src/singleton_autoloads/PlayerInfo.gd"
UiManager="*res://src/singleton_autoloads/UIManager.gd"
LevelInfo="*res://src/singleton_autoloads/LevelInfo.gd"
[debug]

View File

@ -24,7 +24,10 @@ func _ready():
#grid_size = get_node("/root").get_visible_rect().size
print(grid_size)
set_as_toplevel(true)
update_grid_position()
#update_grid_position()
##TODO: Can't seem to get first load grid snap not to happen.
grid_position = calculate_grid_position()
jump_to_grid_position()
print("Camera Set: ",grid_position, position)
print("Ray Left: ", $Left.global_position, $Left.cast_to)
@ -96,6 +99,7 @@ func update_grid_position():
grid_position.x = new_grid_position.x
jump_to_grid_position()
else:
grid_position = new_grid_position
jump_to_grid_position()
#$Left.position = Vector2(grid_position * grid_size)
#print("Ray Left: ", $Left.global_position, $Left.cast_to)

19
src/Level.gd Normal file
View File

@ -0,0 +1,19 @@
class_name Level
extends Node2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
onready var player_start = $PlayerStart
# Called when the node enters the scene tree for the first time.
func _ready():
LevelInfo.player_start_position = player_start
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=2]
[gd_scene load_steps=14 format=2]
[ext_resource path="res://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://assets/Tiles/Assets/Demo TileSet.tres" type="TileSet" id=2]
@ -8,11 +8,51 @@
[ext_resource path="res://assets/Music/platformer_level03_loop.ogg" type="AudioStream" id=6]
[ext_resource path="res://src/enemyC/EnemyC.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Interactables/Door.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/components/Hitbox_Component.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Level.gd" type="Script" id=10]
[sub_resource type="SegmentShape2D" id=1]
b = Vector2( 1500, 0 )
[sub_resource type="SegmentShape2D" id=2]
a = Vector2( -1, -68 )
b = Vector2( -1, 349 )
[sub_resource type="RectangleShape2D" id=3]
extents = Vector2( 50, 2 )
[node name="Level" type="Node2D"]
script = ExtResource( 10 )
[node name="PlayerStart" type="Position2D" parent="."]
position = Vector2( 590, 271 )
[node name="CameraBoundaries" type="Area2D" parent="."]
collision_layer = 256
collision_mask = 0
__meta__ = {
"_edit_lock_": true
}
[node name="CollisionShape2D3" type="CollisionShape2D" parent="CameraBoundaries"]
modulate = Color( 0.431373, 0.431373, 1, 1 )
shape = SubResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="CameraBoundaries"]
modulate = Color( 0.431373, 0.431373, 1, 1 )
position = Vector2( 0, 66 )
shape = SubResource( 2 )
__meta__ = {
"_edit_lock_": true
}
[node name="CollisionShape2D2" type="CollisionShape2D" parent="CameraBoundaries"]
modulate = Color( 0.431373, 0.431373, 1, 1 )
position = Vector2( 1281, 68 )
shape = SubResource( 2 )
__meta__ = {
"_edit_lock_": true
}
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
scroll_base_scale = Vector2( 0.4, 1 )
@ -66,7 +106,7 @@ __meta__ = {
}
[node name="EnemyC2" parent="." instance=ExtResource( 7 )]
position = Vector2( 787, 132 )
position = Vector2( 494, 39 )
[node name="ActorTemplate" parent="." instance=ExtResource( 1 )]
position = Vector2( 262, 44 )
@ -87,12 +127,13 @@ position = Vector2( 187, 144 )
[node name="Door" parent="." instance=ExtResource( 8 )]
position = Vector2( 866, 120 )
[node name="CameraBoundaries" type="Area2D" parent="."]
collision_layer = 256
collision_mask = 0
[node name="Hitbox_Component" parent="." instance=ExtResource( 9 )]
position = Vector2( 766, 334 )
damage_amount = 50
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox_Component"]
modulate = Color( 1, 0, 0, 1 )
shape = SubResource( 3 )
__meta__ = {
"_edit_lock_": true
}
[node name="CollisionShape2D3" type="CollisionShape2D" parent="CameraBoundaries"]
shape = SubResource( 1 )

View File

@ -9,6 +9,7 @@ onready var gun = $Gun
func _ready() -> void:
PlayerInfo.player_health = $Health_Component.health
global_position = LevelInfo.player_start_position.transform.origin
movement_component.player_number = player_number
@ -21,6 +22,8 @@ func hit_Receiver(damage):
if $Health_Component.health > 0:
movement_state_machine.change_state($movement_state_machine/hurt)
PlayerInfo.player_health = $Health_Component.health
if PlayerInfo.player_health <= 0:
return
yield( get_tree().create_timer(2 + $movement_state_machine/hurt.timeout_seconds), "timeout")
$Hurtbox_Component.set_hurtbox(true)

View File

@ -14,7 +14,7 @@
[ext_resource path="res://src/playerD/states/hurt.gd" type="Script" id=12]
[ext_resource path="res://src/Gun.gd" type="Script" id=13]
[ext_resource path="res://src/playerD/states/roll.gd" type="Script" id=14]
[ext_resource path="res://src/state_animated_actor.gd" type="Script" id=15]
[ext_resource path="res://src/playerD/states/die.gd" type="Script" id=15]
[ext_resource path="res://src/templates/Interactable/Interactable_Receiver.gd" type="Script" id=16]
[sub_resource type="StreamTexture" id=90]

12
src/playerD/states/die.gd Normal file
View File

@ -0,0 +1,12 @@
extends StateAnimatedActor
func enter() -> void:
modifier_stack_ref.clear()
.enter()
move_component.velocity.x = 0
func process_physics(_delta: float) -> State:
#Dead Dead dead.
#move_actor_as_desired(_delta)
return null

View File

@ -0,0 +1,13 @@
extends Node
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
var player_start_position: Position2D
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass