AAAA
This commit is contained in:
parent
279b5e5599
commit
4f70414ed9
46 changed files with 1485 additions and 170 deletions
10
Objects/AnimTrigger/AnimTrigger.gd
Normal file
10
Objects/AnimTrigger/AnimTrigger.gd
Normal file
|
@ -0,0 +1,10 @@
|
|||
extends Area2D
|
||||
|
||||
@export var animator : AnimationPlayer
|
||||
@export var animation : String
|
||||
@export var playOnce := true
|
||||
|
||||
var animReady = false
|
||||
|
||||
func _on_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
animator.play(animation)
|
14
Objects/AnimTrigger/anim_trigger.tscn
Normal file
14
Objects/AnimTrigger/anim_trigger.tscn
Normal file
|
@ -0,0 +1,14 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://dc8odchuhx80d"]
|
||||
|
||||
[ext_resource type="Script" path="res://Objects/AnimTrigger/AnimTrigger.gd" id="1_n4pxa"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ilg2i"]
|
||||
|
||||
[node name="AnimTrigger" type="Area2D"]
|
||||
collision_layer = 4
|
||||
script = ExtResource("1_n4pxa")
|
||||
|
||||
[node name="Collider" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_ilg2i")
|
||||
|
||||
[connection signal="body_shape_entered" from="." to="." method="_on_body_shape_entered"]
|
11
Objects/Checkpoint/Checkpoint.gd
Normal file
11
Objects/Checkpoint/Checkpoint.gd
Normal file
|
@ -0,0 +1,11 @@
|
|||
extends Node2D
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
3
Objects/Checkpoint/Checkpoint.tscn
Normal file
3
Objects/Checkpoint/Checkpoint.tscn
Normal file
|
@ -0,0 +1,3 @@
|
|||
[gd_scene format=3 uid="uid://dep314vkturtp"]
|
||||
|
||||
[node name="Checkpoint" type="Node2D"]
|
13
Objects/DeathCollider/DeathCollider.gd
Normal file
13
Objects/DeathCollider/DeathCollider.gd
Normal file
|
@ -0,0 +1,13 @@
|
|||
extends Area2D
|
||||
|
||||
var killing = null
|
||||
@export var detecting := false
|
||||
|
||||
func _on_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
if "die" in body and detecting:
|
||||
killing = body
|
||||
|
||||
func _physics_process(delta):
|
||||
if killing:
|
||||
killing.die()
|
||||
killing = null
|
14
Objects/DeathCollider/DeathCollider.tscn
Normal file
14
Objects/DeathCollider/DeathCollider.tscn
Normal file
|
@ -0,0 +1,14 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://b5cr2rihwvwq2"]
|
||||
|
||||
[ext_resource type="Script" path="res://Objects/DeathCollider/DeathCollider.gd" id="1_get24"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pangl"]
|
||||
size = Vector2(16, 16)
|
||||
|
||||
[node name="DeathCollider" type="Area2D"]
|
||||
script = ExtResource("1_get24")
|
||||
|
||||
[node name="Collider" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_pangl")
|
||||
|
||||
[connection signal="body_shape_entered" from="." to="." method="_on_body_shape_entered"]
|
30
Objects/GroundSmasher/DualSmasher.gd
Normal file
30
Objects/GroundSmasher/DualSmasher.gd
Normal file
|
@ -0,0 +1,30 @@
|
|||
extends Node2D
|
||||
|
||||
var detecting = true
|
||||
|
||||
func _on_anim_trigger_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
if detecting:
|
||||
detecting = false
|
||||
|
||||
var tween = get_tree().create_tween()
|
||||
tween.set_ease(Tween.EASE_IN)
|
||||
tween.set_trans(Tween.TRANS_CUBIC)
|
||||
tween.set_parallel(true)
|
||||
|
||||
tween.tween_property($SmasherBody, "position", Vector2(0, -66), 0.3)
|
||||
tween.tween_property($SmasherBody2, "position", Vector2(0, 66), 0.3)
|
||||
|
||||
await tween.finished
|
||||
|
||||
tween = get_tree().create_tween()
|
||||
tween.set_ease(Tween.EASE_IN)
|
||||
tween.set_trans(Tween.TRANS_SINE)
|
||||
tween.set_parallel(true)
|
||||
|
||||
tween.tween_property($SmasherBody, "position", Vector2(0, -100), 2).set_delay(1)
|
||||
tween.tween_property($SmasherBody2, "position", Vector2(0, 100), 2).set_delay(1)
|
||||
|
||||
await tween.finished
|
||||
|
||||
detecting = true
|
||||
|
41
Objects/GroundSmasher/DualSmasher.tscn
Normal file
41
Objects/GroundSmasher/DualSmasher.tscn
Normal file
|
@ -0,0 +1,41 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://cufm4g76fik7t"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dc8odchuhx80d" path="res://Objects/AnimTrigger/anim_trigger.tscn" id="1_cq28h"]
|
||||
[ext_resource type="Script" path="res://Objects/GroundSmasher/DualSmasher.gd" id="1_px0wu"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnkms0met64fy" path="res://Objects/GroundSmasher/Smasher.png" id="2_6f7iw"]
|
||||
|
||||
[node name="Smasher" type="Node2D"]
|
||||
script = ExtResource("1_px0wu")
|
||||
|
||||
[node name="AnimTrigger" parent="." instance=ExtResource("1_cq28h")]
|
||||
scale = Vector2(1.6, 4)
|
||||
collision_layer = 0
|
||||
collision_mask = 2
|
||||
script = null
|
||||
|
||||
[node name="SmasherBody" type="AnimatableBody2D" parent="."]
|
||||
position = Vector2(0, -100)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="SmasherBody"]
|
||||
position = Vector2(0, -37)
|
||||
texture = ExtResource("2_6f7iw")
|
||||
offset = Vector2(0, 40)
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="SmasherBody"]
|
||||
position = Vector2(0, -8)
|
||||
polygon = PackedVector2Array(-16, -52, -16, 68, -13, 74, 0, 74, 13, 74, 16, 68, 16, -52)
|
||||
|
||||
[node name="SmasherBody2" type="AnimatableBody2D" parent="."]
|
||||
position = Vector2(0, 100)
|
||||
rotation = 3.14159
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="SmasherBody2"]
|
||||
position = Vector2(0, -37)
|
||||
texture = ExtResource("2_6f7iw")
|
||||
offset = Vector2(0, 40)
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="SmasherBody2"]
|
||||
position = Vector2(0, -8)
|
||||
polygon = PackedVector2Array(-16, -52, -16, 68, -13, 74, 0, 74, 13, 74, 16, 68, 16, -52)
|
||||
|
||||
[connection signal="body_shape_entered" from="AnimTrigger" to="." method="_on_anim_trigger_body_shape_entered"]
|
BIN
Objects/GroundSmasher/Smasher.kra
Normal file
BIN
Objects/GroundSmasher/Smasher.kra
Normal file
Binary file not shown.
BIN
Objects/GroundSmasher/Smasher.kra~
Normal file
BIN
Objects/GroundSmasher/Smasher.kra~
Normal file
Binary file not shown.
BIN
Objects/GroundSmasher/Smasher.png
Normal file
BIN
Objects/GroundSmasher/Smasher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 235 B |
34
Objects/GroundSmasher/Smasher.png.import
Normal file
34
Objects/GroundSmasher/Smasher.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cnkms0met64fy"
|
||||
path="res://.godot/imported/Smasher.png-f4cece1b9694499f701efe8bcdb2c27c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/GroundSmasher/Smasher.png"
|
||||
dest_files=["res://.godot/imported/Smasher.png-f4cece1b9694499f701efe8bcdb2c27c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
BIN
Objects/GroundSmasher/Smasher.png~
Normal file
BIN
Objects/GroundSmasher/Smasher.png~
Normal file
Binary file not shown.
After Width: | Height: | Size: 214 B |
46
Objects/GroundSmasher/SmasherCollide.gd
Normal file
46
Objects/GroundSmasher/SmasherCollide.gd
Normal file
|
@ -0,0 +1,46 @@
|
|||
extends AnimatableBody2D
|
||||
|
||||
@onready var tip = $"Tip"
|
||||
|
||||
var detecting = true
|
||||
|
||||
var velocity = Vector2.ZERO
|
||||
|
||||
@onready var startPos = global_position
|
||||
|
||||
func _on_anim_trigger_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
if detecting:
|
||||
detecting = false
|
||||
var tween = get_tree().create_tween()
|
||||
var space_state = get_world_2d().direct_space_state
|
||||
|
||||
var query = PhysicsRayQueryParameters2D.create(tip.global_position, tip.global_position + Vector2(0, 500).rotated(global_rotation))
|
||||
var result = space_state.intersect_ray(query)
|
||||
|
||||
var finalPos = Vector2(0, 400).rotated(global_rotation)
|
||||
if result:
|
||||
finalPos = result.position - tip.global_position
|
||||
|
||||
tween.set_trans(Tween.TRANS_CUBIC)
|
||||
|
||||
tween.set_parallel(true)
|
||||
|
||||
tween.tween_property(self, "global_position", global_position + finalPos, 0.5).set_ease(Tween.EASE_IN)
|
||||
tween.tween_property(self, "velocity", Vector2(0, 700).rotated(global_rotation), 0.5).set_ease(Tween.EASE_IN)
|
||||
|
||||
await tween.finished
|
||||
|
||||
tween = get_tree().create_tween()
|
||||
tween.set_parallel(true)
|
||||
|
||||
tween.tween_property(self, "global_position", startPos, 2).set_trans(Tween.TRANS_SINE).set_delay(1).set_ease(Tween.EASE_IN)
|
||||
tween.tween_property(self, "velocity", Vector2.ZERO, 0.5).set_trans(Tween.TRANS_SINE).set_delay(0.25).set_ease(Tween.EASE_IN)
|
||||
|
||||
#await get_tree().create_timer(0.25).timeout
|
||||
|
||||
#constant_linear_velocity = Vector2.ZERO
|
||||
|
||||
await tween.finished
|
||||
|
||||
detecting = true
|
||||
|
30
Objects/GroundSmasher/smasher.tscn
Normal file
30
Objects/GroundSmasher/smasher.tscn
Normal file
|
@ -0,0 +1,30 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://c7vbin1wckti1"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dc8odchuhx80d" path="res://Objects/AnimTrigger/anim_trigger.tscn" id="1_qvh2l"]
|
||||
[ext_resource type="Script" path="res://Objects/GroundSmasher/SmasherCollide.gd" id="2_0g66p"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnkms0met64fy" path="res://Objects/GroundSmasher/Smasher.png" id="2_s8d83"]
|
||||
|
||||
[node name="Smasher" type="Node2D"]
|
||||
|
||||
[node name="AnimTrigger" parent="." instance=ExtResource("1_qvh2l")]
|
||||
scale = Vector2(1.6, 4)
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
script = null
|
||||
|
||||
[node name="SmasherBody" type="AnimatableBody2D" parent="."]
|
||||
position = Vector2(0, -137)
|
||||
script = ExtResource("2_0g66p")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="SmasherBody"]
|
||||
texture = ExtResource("2_s8d83")
|
||||
offset = Vector2(0, 40)
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="SmasherBody"]
|
||||
position = Vector2(0, 24)
|
||||
polygon = PackedVector2Array(-16, -47, -16, 73, -13, 79, 13, 79, 16, 73, 16, -47)
|
||||
|
||||
[node name="Tip" type="Node2D" parent="SmasherBody"]
|
||||
position = Vector2(0, 103)
|
||||
|
||||
[connection signal="body_shape_entered" from="AnimTrigger" to="SmasherBody" method="_on_anim_trigger_body_shape_entered"]
|
19
Objects/SceneTeleporter/teleporter.tscn
Normal file
19
Objects/SceneTeleporter/teleporter.tscn
Normal file
|
@ -0,0 +1,19 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://xb5tl1a6bkkc"]
|
||||
|
||||
[ext_resource type="Script" path="res://Objects/SceneTeleporter/teleportergd.gd" id="1_l8pvx"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_wwqub"]
|
||||
|
||||
[node name="Teleporter" type="Node2D"]
|
||||
position = Vector2(-361, 264)
|
||||
script = ExtResource("1_l8pvx")
|
||||
scenePath = "res://Maps/MapTest2.tscn"
|
||||
|
||||
[node name="CollisionDetector" type="Area2D" parent="."]
|
||||
collision_layer = 0
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape2D" parent="CollisionDetector"]
|
||||
shape = SubResource("CircleShape2D_wwqub")
|
||||
|
||||
[connection signal="body_shape_entered" from="CollisionDetector" to="." method="_on_collision_detector_body_shape_entered"]
|
9
Objects/SceneTeleporter/teleportergd.gd
Normal file
9
Objects/SceneTeleporter/teleportergd.gd
Normal file
|
@ -0,0 +1,9 @@
|
|||
extends Node2D
|
||||
|
||||
@export var scenePath := "res://"
|
||||
|
||||
func _ready():
|
||||
ResourceLoader.load_threaded_request(scenePath)
|
||||
|
||||
func _on_collision_detector_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
get_tree().change_scene_to_file(scenePath)
|
Loading…
Add table
Add a link
Reference in a new issue