Skip to content

Commit

Permalink
keeping player in view during rotation
Browse files Browse the repository at this point in the history
  • Loading branch information
jbourqueendless committed Nov 22, 2024
1 parent 39bab79 commit 3e1ddeb
Show file tree
Hide file tree
Showing 3 changed files with 168 additions and 49 deletions.
1 change: 1 addition & 0 deletions components/enemy/enemy.gd
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ func _on_gravity_changed(new_gravity):

func _on_hitbox_body_entered(body):
if body.is_in_group("players"):

if squashable and body.velocity.y > 0 and body.position.y < position.y:
body.stomp()
queue_free()
Expand Down
96 changes: 95 additions & 1 deletion components/enemy/enemy.tscn
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
[gd_scene load_steps=10 format=3 uid="uid://dk0xon0k7ga23"]
[gd_scene load_steps=26 format=3 uid="uid://dk0xon0k7ga23"]

[ext_resource type="Texture2D" uid="uid://dwhi5vmkbnyk4" path="res://assets/enemy.png" id="1_57cf6"]
[ext_resource type="Script" path="res://components/enemy/enemy.gd" id="1_urf0o"]
[ext_resource type="Script" path="res://addons/block_code/block_code_node/block_code.gd" id="3_8rxqa"]
[ext_resource type="Script" path="res://addons/block_code/serialization/block_serialization_tree.gd" id="4_gb5wh"]
[ext_resource type="Script" path="res://addons/block_code/serialization/block_serialization.gd" id="5_4ncwm"]
[ext_resource type="Script" path="res://addons/block_code/serialization/value_block_serialization.gd" id="6_mqf0t"]
[ext_resource type="Script" path="res://addons/block_code/serialization/block_script_serialization.gd" id="7_1py5q"]
[ext_resource type="Script" path="res://addons/block_code/code_generation/variable_definition.gd" id="8_87fpr"]

[sub_resource type="AtlasTexture" id="AtlasTexture_5r7qd"]
atlas = ExtResource("1_57cf6")
Expand Down Expand Up @@ -50,6 +56,84 @@ size = Vector2(48, 78)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cepcq"]
size = Vector2(82, 83)

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_htw7m"]
radius = 55.0
height = 110.0

[sub_resource type="Resource" id="Resource_ana05"]
script = ExtResource("5_4ncwm")
name = &"ready"
children = Array[ExtResource("5_4ncwm")]([])
arguments = {}

[sub_resource type="Resource" id="Resource_pyq3r"]
script = ExtResource("4_gb5wh")
root = SubResource("Resource_ana05")
canvas_position = Vector2(54, 47)

[sub_resource type="Resource" id="Resource_tuc57"]
script = ExtResource("6_mqf0t")
name = &"area2d_on_entered:something"
arguments = {}

[sub_resource type="Resource" id="Resource_ufckg"]
script = ExtResource("6_mqf0t")
name = &"is_node_in_group"
arguments = {
"group": "players",
"node": SubResource("Resource_tuc57")
}

[sub_resource type="Resource" id="Resource_k3lkv"]
script = ExtResource("5_4ncwm")
name = &"call_method_group"
children = Array[ExtResource("5_4ncwm")]([])
arguments = {
"group": "animator",
"method_name": ""
}

[sub_resource type="Resource" id="Resource_kwf5i"]
script = ExtResource("5_4ncwm")
name = &"if"
children = Array[ExtResource("5_4ncwm")]([SubResource("Resource_k3lkv")])
arguments = {
"condition": SubResource("Resource_ufckg")
}

[sub_resource type="Resource" id="Resource_o4vo8"]
script = ExtResource("5_4ncwm")
name = &"area2d_on_entered"
children = Array[ExtResource("5_4ncwm")]([SubResource("Resource_kwf5i")])
arguments = {}

[sub_resource type="Resource" id="Resource_tr3jk"]
script = ExtResource("4_gb5wh")
root = SubResource("Resource_o4vo8")
canvas_position = Vector2(175, 175)

[sub_resource type="Resource" id="Resource_f41ry"]
script = ExtResource("7_1py5q")
script_inherits = "Area2D"
block_serialization_trees = Array[ExtResource("4_gb5wh")]([SubResource("Resource_pyq3r"), SubResource("Resource_tr3jk")])
variables = Array[ExtResource("8_87fpr")]([])
generated_script = "extends Area2D
func _init():
body_entered.connect(_on_body_entered)
func _ready():
pass
func _on_body_entered(something: Node2D):
if ((something).is_in_group('players')):
get_tree().call_group('animator', '')
"
version = 0

[node name="Enemy" type="CharacterBody2D"]
collision_layer = 8
collision_mask = 4
Expand Down Expand Up @@ -85,4 +169,14 @@ position = Vector2(0, -106)
position = Vector2(0, 58.5)
shape = SubResource("RectangleShape2D_cepcq")

[node name="Area2D" type="Area2D" parent="."]

[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(2, -44)
shape = SubResource("CapsuleShape2D_htw7m")

[node name="BlockCode" type="Node" parent="Area2D"]
script = ExtResource("3_8rxqa")
block_script = SubResource("Resource_f41ry")

[connection signal="body_entered" from="Hitbox" to="." method="_on_hitbox_body_entered"]
120 changes: 72 additions & 48 deletions main.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,19 @@
[ext_resource type="Script" path="res://addons/block_code/serialization/block_script_serialization.gd" id="18_a82pt"]
[ext_resource type="Script" path="res://addons/block_code/code_generation/variable_definition.gd" id="19_d0hxd"]

[sub_resource type="Animation" id="Animation_f6oj0"]
resource_name = "turn_the_world"
length = 25.0
[sub_resource type="Animation" id="Animation_hkv7j"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.133333, 1, 2, 3, 20.7, 22, 23, 23.9667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0, 0.523599, 1.0472, 1.5708, 1.5708, 1.0472, 0.523599, 0.0]
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
Expand All @@ -42,10 +41,10 @@ tracks/1/path = NodePath(".:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.133333, 1, 2, 3, 20.7, 22, 23, 23.9667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0), Vector2(1000, -1000), Vector2(2000, -2000), Vector2(3000, -3500), Vector2(3000, -3500), Vector2(2000, -2000), Vector2(1000, -1000), Vector2(0, 0)]
"values": [Vector2(0, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
Expand All @@ -54,10 +53,10 @@ tracks/2/path = NodePath("Switch:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.133333, 19.5667, 19.8667),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-1.5708, -0.977384, -0.977384, -1.5708]
"values": [-1.5708]
}
tracks/3/type = "value"
tracks/3/imported = false
Expand All @@ -66,10 +65,10 @@ tracks/3/path = NodePath("Player:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.166667, 21.0667, 21.8333),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0, -1.5708, -1.5708, 0.0]
"values": [0.0]
}
tracks/4/type = "value"
tracks/4/imported = false
Expand All @@ -78,10 +77,10 @@ tracks/4/path = NodePath("Label:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 3.76667),
"transitions": PackedFloat32Array(1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false, true]
"values": [false]
}
tracks/5/type = "value"
tracks/5/imported = false
Expand All @@ -90,10 +89,10 @@ tracks/5/path = NodePath("Label2:visible")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 3.76667),
"transitions": PackedFloat32Array(1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false, true]
"values": [false]
}
tracks/6/type = "value"
tracks/6/imported = false
Expand All @@ -102,25 +101,38 @@ tracks/6/path = NodePath("Background:tint")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.2, 17.0333, 17.2, 17.3667, 17.5333, 17.7, 17.8667, 18, 18.1667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.569993, 0.558956, 0.878091, 1), Color(0.855629, 0.456545, 0.582872, 1), Color(0.855629, 0.456545, 0.582872, 1), Color(0.243347, 0.621683, 0.955774, 1), Color(0.940593, 0.310926, 0.756332, 1), Color(0.383297, 0.5903, 0.980091, 1), Color(0.9554, 0.307318, 0.71152, 1), Color(0.446793, 0.572921, 0.982672, 1), Color(0.966969, 0.267293, 0.754444, 1), Color(0.43984, 0.573711, 0.986868, 1)]
"values": [Color(0.569993, 0.558956, 0.878091, 1)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Player/Camera2D:limit_bottom")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1080]
}

[sub_resource type="Animation" id="Animation_hkv7j"]
length = 0.001
[sub_resource type="Animation" id="Animation_f6oj0"]
resource_name = "turn_the_world"
length = 25.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PackedFloat32Array(0.133333, 1, 2, 3, 20.7, 22, 23, 23.9667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [0.0]
"values": [0.0, 0.523599, 1.0472, 1.5708, 1.5708, 1.0472, 0.523599, 0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
Expand All @@ -129,10 +141,10 @@ tracks/1/path = NodePath(".:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PackedFloat32Array(0.133333, 0.566667, 1, 2, 3, 20.7, 22, 23, 23.9667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, 0)]
"values": [Vector2(0, 0), Vector2(500, -700), Vector2(1000, -1000), Vector2(2000, -2000), Vector2(3000, -3500), Vector2(3000, -3500), Vector2(2000, -2000), Vector2(1000, -1000), Vector2(0, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
Expand All @@ -141,10 +153,10 @@ tracks/2/path = NodePath("Switch:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PackedFloat32Array(0, 0.133333, 19.5667, 19.8667),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [-1.5708]
"values": [-1.5708, -0.977384, -0.977384, -1.5708]
}
tracks/3/type = "value"
tracks/3/imported = false
Expand All @@ -153,10 +165,10 @@ tracks/3/path = NodePath("Player:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PackedFloat32Array(0, 0.166667, 21.0667, 21.8333),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [0.0]
"values": [0.0, -1.5708, -1.5708, 0.0]
}
tracks/4/type = "value"
tracks/4/imported = false
Expand All @@ -165,10 +177,10 @@ tracks/4/path = NodePath("Label:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PackedFloat32Array(0, 3.76667),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false]
"values": [false, true]
}
tracks/5/type = "value"
tracks/5/imported = false
Expand All @@ -177,10 +189,10 @@ tracks/5/path = NodePath("Label2:visible")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PackedFloat32Array(0, 3.76667),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false]
"values": [false, true]
}
tracks/6/type = "value"
tracks/6/imported = false
Expand All @@ -189,10 +201,22 @@ tracks/6/path = NodePath("Background:tint")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PackedFloat32Array(0, 0.2, 17.0333, 17.2, 17.3667, 17.5333, 17.7, 17.8667, 18, 18.1667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Color(0.569993, 0.558956, 0.878091, 1)]
"values": [Color(0.569993, 0.558956, 0.878091, 1), Color(0.855629, 0.456545, 0.582872, 1), Color(0.855629, 0.456545, 0.582872, 1), Color(0.243347, 0.621683, 0.955774, 1), Color(0.940593, 0.310926, 0.756332, 1), Color(0.383297, 0.5903, 0.980091, 1), Color(0.9554, 0.307318, 0.71152, 1), Color(0.446793, 0.572921, 0.982672, 1), Color(0.966969, 0.267293, 0.754444, 1), Color(0.43984, 0.573711, 0.986868, 1)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Player/Camera2D:limit_bottom")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.7, 2.66667),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [1080, 2200, 2200]
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_rqsmy"]
Expand Down Expand Up @@ -691,7 +715,7 @@ rotation = 1.5708
width = 2

[node name="Player" parent="." instance=ExtResource("2_7yl00")]
position = Vector2(463, 599)
position = Vector2(4031, 335)
collision_layer = 1
collision_mask = 7
sprite_frames = ExtResource("9_qmofe")
Expand Down

0 comments on commit 3e1ddeb

Please sign in to comment.