Unfunctional slope rotation, renamed globals

This commit is contained in:
Jakob Feldmann 2022-10-18 18:27:04 +02:00
parent 080dc9051b
commit 0c5c2112b4
23 changed files with 348 additions and 311 deletions

View File

@ -5,6 +5,6 @@ onready var anim_player: AnimationPlayer = get_node("AnimationPlayer")
export var scoreValue: = 100
func _on_body_entered(body: Node) -> void:
GlobalData.score += scoreValue
GlobalState.score += scoreValue
anim_player.play("fade_out")
queue_free()

View File

@ -44,7 +44,7 @@ config/icon="res://icon.png"
[autoload]
GlobalData="*res://src/Autoload/GlobalData.tscn"
GlobalState="*res://src/Autoload/GlobalState.tscn"
[debug]

View File

@ -5,7 +5,6 @@ export var jump_buffer_filled := false
#TODO Switch to new unique node name method for referencing
onready var left_wall_raycasts = $WallRaycasts/LeftWallRaycast
onready var right_wall_raycasts = $WallRaycasts/RightWallRaycast
onready var ground_raycasts = $GroundRaycasts
onready var player_state_machine = $BlobbyStateMachine
onready var init_boost = player_state_machine.init_boost
onready var init_boost_type = player_state_machine.init_boost_type
@ -356,14 +355,39 @@ func execute_airstrafe(
return linear_velocity
func execute_movement() -> void:
if(GlobalState.is_dead):
return
var colliding_ray_number = 0
var target_angle = 0
var rotation_point: Vector2
if(is_on_floor()):
for raycast in $SlopeRaycasts.get_children():
if(raycast.is_colliding()):
colliding_ray_number += 1
var collision_normal = raycast.get_collision_normal()
target_angle += Vector2.UP.angle_to(collision_normal)
target_angle = rotation + target_angle/max(colliding_ray_number,1)
rotation_point = sign(target_angle) * Vector2($BlobbyBody.shape.extents.x + $BlobbyBody.to_local(position).x, 0)
print(rotation_point)
if(target_angle == 0 || colliding_ray_number < 2):
rotation = 0
velocity = move_and_slide(velocity, FLOOR_NORMAL,true, 4, 0.785398,false)
else:
velocity = move_and_slide(velocity, FLOOR_NORMAL,true, 4, 0.785398,false)
var translation = rotation_point.rotated(target_angle) - rotation_point
# if(target_angle == 0):
# position.x += translation.xddddad
# position.y += translation.y
rotation = target_angle
#TODO Limit movement
func die() -> void:
z_index = 1
GlobalData.is_dead = true
GlobalData.deaths += 1
GlobalState.is_dead = true
GlobalState.deaths += 1
$BlobbySprite/AnimationTree.active = false
$BlobbySprite/BlobbymationPlayer.play("dying3")

View File

@ -4543,9 +4543,6 @@ shape = SubResource( 1 )
[node name="BlobbyStateMachine" type="Node" parent="."]
script = ExtResource( 3 )
coyote_hanging = null
init_boost = null
init_boost_type = null
[node name="JumpBufferTimer" type="Timer" parent="BlobbyStateMachine"]
wait_time = 0.067
@ -4601,19 +4598,19 @@ exclude_parent = false
cast_to = Vector2( 1.5, 0 )
collision_mask = 56
[node name="GroundRaycasts" type="Node2D" parent="."]
[node name="SlopeRaycasts" type="Node2D" parent="."]
position = Vector2( 0, -1 )
[node name="Groundcast2" type="RayCast2D" parent="GroundRaycasts"]
[node name="SlopeRaycast" type="RayCast2D" parent="SlopeRaycasts"]
position = Vector2( 14, 0 )
enabled = true
cast_to = Vector2( 0, 10 )
cast_to = Vector2( 0, 19 )
collision_mask = 56
[node name="Groundcast3" type="RayCast2D" parent="GroundRaycasts"]
[node name="SlopeRaycast2" type="RayCast2D" parent="SlopeRaycasts"]
position = Vector2( -12, 0 )
enabled = true
cast_to = Vector2( 0, 10 )
cast_to = Vector2( 0, 19 )
collision_mask = 56
[connection signal="area_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_area_entered"]

View File

@ -17,11 +17,12 @@ func _ready():
_set_boundaries()
self.position = blobby.global_position
prev_camera_pos = get_camera_screen_center()
offset.x = -camera_horizontal_shift
func _physics_process(_delta: float) -> void:
if(!GlobalData.is_dead):
if(!GlobalState.is_dead):
_adapt_to_movement()
#TODO Do this via a event
#TODO Do this via a event or let it be to track blobbies movement better
else:
self.position = blobby.global_position
_death_cam()

View File

@ -25,7 +25,7 @@ func _ready():
add_state("fall")
add_state("wallslide")
state = states.idle
GlobalData.is_dead = false
GlobalState.is_dead = false
set_state(states.idle)

272
src/Actors/BlobbyCam.tscn Normal file
View File

@ -0,0 +1,272 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://src/Actors/Blobby/BlobbyCam.gd" type="Script" id=1]
[ext_resource path="res://assets/environment/background/Asteroids-Near.png" type="Texture" id=2]
[ext_resource path="res://assets/environment/background/Asteroids-Far.png" type="Texture" id=3]
[ext_resource path="res://assets/environment/background/space.png" type="Texture" id=4]
[sub_resource type="Animation" id=5]
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath(".:zoom")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0.75, 0.75 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:limit_left")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -10000000 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath(".:limit_top")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -10000000 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath(".:limit_right")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 10000000 ]
}
tracks/4/type = "value"
tracks/4/path = NodePath(".:limit_bottom")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 10000000 ]
}
tracks/5/type = "value"
tracks/5/path = NodePath(".:rotating")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ true ]
}
tracks/6/type = "value"
tracks/6/path = NodePath(".:rotation_degrees")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath(".:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = false
tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, 0 ) ]
}
[sub_resource type="Animation" id=6]
resource_name = "deathCam"
length = 2.3
tracks/0/type = "value"
tracks/0/path = NodePath(".:zoom")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 1.6 ),
"transitions": PoolRealArray( 1, 3.24901 ),
"update": 0,
"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.002, 0.002 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:limit_left")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0.8 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ -10000000 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath(".:limit_top")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0.8 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ -10000000 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath(".:limit_right")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0.8 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 10000000 ]
}
tracks/4/type = "value"
tracks/4/path = NodePath(".:limit_bottom")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0.8 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 10000000 ]
}
tracks/5/type = "value"
tracks/5/path = NodePath(".:rotation_degrees")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0.6, 1.6 ),
"transitions": PoolRealArray( 1, 0.120742 ),
"update": 0,
"values": [ 0.0, 360.0 ]
}
tracks/6/type = "method"
tracks/6/path = NodePath("../Blobby")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 2.3 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "respawn"
} ]
}
tracks/7/type = "value"
tracks/7/path = NodePath(".:offset")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, -6 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath(".:drag_margin_h_enabled")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
tracks/9/type = "value"
tracks/9/path = NodePath(".:drag_margin_v_enabled")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
[node name="BlobbyCam" type="Camera2D"]
rotating = true
current = true
zoom = Vector2( 0.75, 0.75 )
process_mode = 0
drag_margin_h_enabled = true
drag_margin_v_enabled = true
drag_margin_left = 0.05
drag_margin_top = 0.05
drag_margin_right = 0.05
drag_margin_bottom = 0.05
editor_draw_screen = false
script = ExtResource( 1 )
[node name="ShiftTween" type="Tween" parent="."]
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/RESET = SubResource( 5 )
anims/deathCam = SubResource( 6 )
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
scroll_base_offset = Vector2( 320, 180 )
[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"]
motion_scale = Vector2( 0, 0 )
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer"]
texture = ExtResource( 4 )
[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"]
motion_scale = Vector2( 0, 0 )
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer2"]
texture = ExtResource( 3 )
[node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"]
motion_scale = Vector2( 0.001, 0.001 )
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer3"]
texture = ExtResource( 2 )

View File

@ -30,7 +30,7 @@ func player_on_floor_direction():
func die() -> void:
queue_free()
GlobalData.score += score
GlobalState.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:
if area.is_in_group("harmful"):

View File

@ -9,6 +9,7 @@ func _ready() -> void:
# TODO adapt to groups
# TODO Engine error here(what does it WANT???)
func _on_StompDetector_body_entered(body: Node) -> void:
if body.global_position.y > get_node("StompDetector").global_position.y:
return
@ -25,7 +26,7 @@ func _physics_process(delta: float) -> void:
func die() -> void:
queue_free()
GlobalData.score += score
GlobalState.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:

View File

@ -30,7 +30,7 @@ func is_at_ledge():
func die() -> void:
queue_free()
GlobalData.score += score
GlobalState.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:

View File

@ -31,7 +31,7 @@ func is_safe_drop():
func die() -> void:
queue_free()
GlobalData.score += score
GlobalState.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:
if area.is_in_group("harmful"):

View File

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://src/Autoload/GlobalData.gd" type="Script" id=1]
[node name="GlobalData" type="Node"]
script = ExtResource( 1 )

View File

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://src/Autoload/GlobalState.gd" type="Script" id=1]
[node name="GlobalState" type="Node"]
script = ExtResource( 1 )

View File

@ -2,5 +2,5 @@
[ext_resource path="res://src/Utilities/Physic/PhysicsFunc.gd" type="Script" id=1]
[node name="Node" type="Node"]
[node name="ScriptNode" type="Node"]
script = ExtResource( 1 )

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=11 format=2]
[gd_scene load_steps=12 format=2]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=1]
[ext_resource path="res://assets/environment/blocks/24BlockBasic.png" type="Texture" id=2]
@ -8,6 +8,7 @@
[ext_resource path="res://src/Actors/Enemies/Beings/SimpleEnemy.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Actors/Enemies/Beings/SmortEnemy.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Actors/Enemies/Beings/DartingEnemy.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9]
[sub_resource type="ConvexPolygonShape2D" id=3]
points = PoolVector2Array( 0, 0, 24, 0, 24, 24, 0, 24 )
@ -43,7 +44,10 @@ __meta__ = {
[node name="UserInterface" parent="." instance=ExtResource( 3 )]
[node name="BlobbyCam" parent="." instance=ExtResource( 9 )]
[node name="Blobby" parent="." instance=ExtResource( 1 )]
unique_name_in_owner = true
position = Vector2( -259.915, 710.547 )
[node name="SmortEnemy" parent="." instance=ExtResource( 7 )]

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=2]
[gd_scene load_steps=13 format=2]
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=1]
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=2]
@ -10,6 +10,7 @@
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=11]
[sub_resource type="AnimationNodeStateMachinePlayback" id=4]
@ -30,7 +31,10 @@ margin_top = 0.456848
margin_right = 3.15375
margin_bottom = 0.456848
[node name="BlobbyCam" parent="." instance=ExtResource( 11 )]
[node name="Blobby" parent="." instance=ExtResource( 4 )]
unique_name_in_owner = true
position = Vector2( 71.0069, 335.293 )
scale = Vector2( 0.878906, 0.936025 )

View File

@ -2,6 +2,6 @@ extends Button
func _on_button_up() -> void:
GlobalData.score = 0
GlobalState.score = 0
get_tree().paused = false
get_tree().reload_current_scene()

View File

@ -1,4 +1,4 @@
extends Label
func _ready():
self.text = self.text % [GlobalData.score, GlobalData.deaths]
self.text = self.text % [GlobalState.score, GlobalState.deaths]

View File

@ -9,7 +9,7 @@ onready var score: Label = $HUDOverlay/Score
func _ready():
#TODO Connect what HOW?
GlobalData.connect("score_updated", self, "update_interface")
GlobalState.connect("score_updated", self, "update_interface")
update_interface()
func _process(delta):
@ -29,7 +29,7 @@ func _zoom_timer() -> void:
func update_interface() -> void:
score.text = "Score: %s" % GlobalData.score
score.text = "Score: %s" % GlobalState.score
func _on_SignalManager_terminal_activated() -> void:

View File

@ -32,7 +32,7 @@ margin_bottom = 85.0
grow_horizontal = 2
size_flags_horizontal = 2
size_flags_vertical = 2
text = "Wumper"
text = "bobbi"
[node name="MenuContainer" type="HBoxContainer" parent="."]
anchor_left = 0.5

View File

@ -8,10 +8,10 @@ onready var pause_title: Label = get_node("PauseOverlay/Title")
var paused := false setget set_paused
func _ready():
GlobalData.connect("player_died", self, "_on_GlobalData_player_died")
GlobalState.connect("player_died", self, "_on_GlobalState_player_died")
func _on_GlobalData_player_died() -> void:
func _on_GlobalState_player_died() -> void:
self.paused = true
pause_title.text = "You lost"