Player now jumps to a level start position. Level has a base class now.
This commit is contained in:
parent
87c0e8f05f
commit
62f29e8a18
30
Main.tscn
30
Main.tscn
|
|
@ -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/Levels/Level.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://src/CameraControl-Position2D.gd" type="Script" id=5]
|
[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://icon.png" type="Texture" id=13]
|
||||||
[ext_resource path="res://src/playerD/Player.tscn" type="PackedScene" id=14]
|
[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="Main" type="Node2D"]
|
||||||
|
|
||||||
[node name="Level" parent="." instance=ExtResource( 1 )]
|
[node name="Level" parent="." instance=ExtResource( 1 )]
|
||||||
|
|
@ -22,7 +18,7 @@ __meta__ = {
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource( 14 )]
|
[node name="Player" parent="." instance=ExtResource( 14 )]
|
||||||
position = Vector2( 1063, 116 )
|
position = Vector2( 859, 236 )
|
||||||
|
|
||||||
[node name="CameraControl" type="Position2D" parent="."]
|
[node name="CameraControl" type="Position2D" parent="."]
|
||||||
pause_mode = 2
|
pause_mode = 2
|
||||||
|
|
@ -96,31 +92,9 @@ __meta__ = {
|
||||||
[node name="Timer" type="Timer" parent="CameraControl"]
|
[node name="Timer" type="Timer" parent="CameraControl"]
|
||||||
wait_time = 1.5
|
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="."]
|
[node name="UI_Layer" type="CanvasLayer" parent="."]
|
||||||
pause_mode = 2
|
pause_mode = 2
|
||||||
layer = 2
|
layer = 2
|
||||||
visible = false
|
|
||||||
script = ExtResource( 9 )
|
script = ExtResource( 9 )
|
||||||
|
|
||||||
[node name="PanelContainer" type="PanelContainer" parent="UI_Layer"]
|
[node name="PanelContainer" type="PanelContainer" parent="UI_Layer"]
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,11 @@ _global_script_classes=[ {
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://src/templates/Interactable/Interactable_Receiver.gd"
|
"path": "res://src/templates/Interactable/Interactable_Receiver.gd"
|
||||||
}, {
|
}, {
|
||||||
|
"base": "Node2D",
|
||||||
|
"class": "Level",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://src/Level.gd"
|
||||||
|
}, {
|
||||||
"base": "Node",
|
"base": "Node",
|
||||||
"class": "MovementComponent",
|
"class": "MovementComponent",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
|
|
@ -81,6 +86,7 @@ _global_script_class_icons={
|
||||||
"HealthPickup": "",
|
"HealthPickup": "",
|
||||||
"Interactable": "",
|
"Interactable": "",
|
||||||
"Interactable_Receiver": "",
|
"Interactable_Receiver": "",
|
||||||
|
"Level": "",
|
||||||
"MovementComponent": "",
|
"MovementComponent": "",
|
||||||
"State": "",
|
"State": "",
|
||||||
"StateAnimatedActor": "",
|
"StateAnimatedActor": "",
|
||||||
|
|
@ -105,6 +111,7 @@ animation/layers/only_include_visible_layers_by_default=true
|
||||||
|
|
||||||
PlayerInfo="*res://src/singleton_autoloads/PlayerInfo.gd"
|
PlayerInfo="*res://src/singleton_autoloads/PlayerInfo.gd"
|
||||||
UiManager="*res://src/singleton_autoloads/UIManager.gd"
|
UiManager="*res://src/singleton_autoloads/UIManager.gd"
|
||||||
|
LevelInfo="*res://src/singleton_autoloads/LevelInfo.gd"
|
||||||
|
|
||||||
[debug]
|
[debug]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,10 @@ func _ready():
|
||||||
#grid_size = get_node("/root").get_visible_rect().size
|
#grid_size = get_node("/root").get_visible_rect().size
|
||||||
print(grid_size)
|
print(grid_size)
|
||||||
set_as_toplevel(true)
|
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("Camera Set: ",grid_position, position)
|
||||||
print("Ray Left: ", $Left.global_position, $Left.cast_to)
|
print("Ray Left: ", $Left.global_position, $Left.cast_to)
|
||||||
|
|
||||||
|
|
@ -96,6 +99,7 @@ func update_grid_position():
|
||||||
grid_position.x = new_grid_position.x
|
grid_position.x = new_grid_position.x
|
||||||
jump_to_grid_position()
|
jump_to_grid_position()
|
||||||
else:
|
else:
|
||||||
|
grid_position = new_grid_position
|
||||||
jump_to_grid_position()
|
jump_to_grid_position()
|
||||||
#$Left.position = Vector2(grid_position * grid_size)
|
#$Left.position = Vector2(grid_position * grid_size)
|
||||||
#print("Ray Left: ", $Left.global_position, $Left.cast_to)
|
#print("Ray Left: ", $Left.global_position, $Left.cast_to)
|
||||||
|
|
|
||||||
19
src/Level.gd
Normal file
19
src/Level.gd
Normal 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
|
||||||
|
|
@ -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://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://assets/Tiles/Assets/Demo TileSet.tres" type="TileSet" id=2]
|
[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://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/enemyC/EnemyC.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://src/Interactables/Door.tscn" type="PackedScene" id=8]
|
[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]
|
[sub_resource type="SegmentShape2D" id=1]
|
||||||
b = Vector2( 1500, 0 )
|
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"]
|
[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="."]
|
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
|
||||||
scroll_base_scale = Vector2( 0.4, 1 )
|
scroll_base_scale = Vector2( 0.4, 1 )
|
||||||
|
|
@ -66,7 +106,7 @@ __meta__ = {
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="EnemyC2" parent="." instance=ExtResource( 7 )]
|
[node name="EnemyC2" parent="." instance=ExtResource( 7 )]
|
||||||
position = Vector2( 787, 132 )
|
position = Vector2( 494, 39 )
|
||||||
|
|
||||||
[node name="ActorTemplate" parent="." instance=ExtResource( 1 )]
|
[node name="ActorTemplate" parent="." instance=ExtResource( 1 )]
|
||||||
position = Vector2( 262, 44 )
|
position = Vector2( 262, 44 )
|
||||||
|
|
@ -87,12 +127,13 @@ position = Vector2( 187, 144 )
|
||||||
[node name="Door" parent="." instance=ExtResource( 8 )]
|
[node name="Door" parent="." instance=ExtResource( 8 )]
|
||||||
position = Vector2( 866, 120 )
|
position = Vector2( 866, 120 )
|
||||||
|
|
||||||
[node name="CameraBoundaries" type="Area2D" parent="."]
|
[node name="Hitbox_Component" parent="." instance=ExtResource( 9 )]
|
||||||
collision_layer = 256
|
position = Vector2( 766, 334 )
|
||||||
collision_mask = 0
|
damage_amount = 50
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox_Component"]
|
||||||
|
modulate = Color( 1, 0, 0, 1 )
|
||||||
|
shape = SubResource( 3 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_lock_": true
|
"_edit_lock_": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="CollisionShape2D3" type="CollisionShape2D" parent="CameraBoundaries"]
|
|
||||||
shape = SubResource( 1 )
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ onready var gun = $Gun
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
PlayerInfo.player_health = $Health_Component.health
|
PlayerInfo.player_health = $Health_Component.health
|
||||||
|
global_position = LevelInfo.player_start_position.transform.origin
|
||||||
movement_component.player_number = player_number
|
movement_component.player_number = player_number
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -21,6 +22,8 @@ func hit_Receiver(damage):
|
||||||
if $Health_Component.health > 0:
|
if $Health_Component.health > 0:
|
||||||
movement_state_machine.change_state($movement_state_machine/hurt)
|
movement_state_machine.change_state($movement_state_machine/hurt)
|
||||||
PlayerInfo.player_health = $Health_Component.health
|
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")
|
yield( get_tree().create_timer(2 + $movement_state_machine/hurt.timeout_seconds), "timeout")
|
||||||
$Hurtbox_Component.set_hurtbox(true)
|
$Hurtbox_Component.set_hurtbox(true)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
[ext_resource path="res://src/playerD/states/hurt.gd" type="Script" id=12]
|
[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/Gun.gd" type="Script" id=13]
|
||||||
[ext_resource path="res://src/playerD/states/roll.gd" type="Script" id=14]
|
[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]
|
[ext_resource path="res://src/templates/Interactable/Interactable_Receiver.gd" type="Script" id=16]
|
||||||
|
|
||||||
[sub_resource type="StreamTexture" id=90]
|
[sub_resource type="StreamTexture" id=90]
|
||||||
|
|
|
||||||
12
src/playerD/states/die.gd
Normal file
12
src/playerD/states/die.gd
Normal 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
|
||||||
13
src/singleton_autoloads/LevelInfo.gd
Normal file
13
src/singleton_autoloads/LevelInfo.gd
Normal 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
|
||||||
Loading…
Reference in New Issue
Block a user