hyper space

This commit is contained in:
Patrick Nueser
2024-06-28 15:30:44 +02:00
commit 1e4be7ba8d
75 changed files with 1813 additions and 0 deletions

46
enemy/enemy.gd Normal file
View File

@ -0,0 +1,46 @@
extends Area2D
signal died
var start_pos = Vector2.ZERO
var speed = 0
var bullet_scene = preload("res://enemy_bullet/enemy_bullet.tscn")
@onready var screensize = get_viewport_rect().size
func start(pos):
speed = 0
position = Vector2(pos.x, -pos.y)
start_pos = pos
await get_tree().create_timer(randf_range(0.25, 0.55)).timeout
var tween = create_tween().set_trans(Tween.TRANS_BACK)
tween.tween_property(self, "position:y", start_pos.y, 1.4)
await tween.finished
$MoveTimer.wait_time = randf_range(5, 20)
$MoveTimer.start()
$ShootTimer.wait_time = randf_range(4, 20)
$ShootTimer.start()
func explode():
speed = 0
$AnimationPlayer.play("explode")
set_deferred("monitoring", false)
died.emit(5)
await $AnimationPlayer.animation_finished
queue_free()
func _process(delta):
position.y += speed * delta
if position.y > screensize.y + 32:
start(start_pos)
func _on_move_timer_timeout():
speed = randf_range(75, 100)
func _on_shoot_timer_timeout():
var b = bullet_scene.instantiate()
get_tree().root.add_child(b)
b.start(position)
$ShootTimer.wait_time = randf_range(4, 20)
$ShootTimer.start()

162
enemy/enemy.tscn Normal file
View File

@ -0,0 +1,162 @@
[gd_scene load_steps=9 format=3 uid="uid://u30xbqx1txm"]
[ext_resource type="Script" path="res://enemy/enemy.gd" id="1_1a4e0"]
[ext_resource type="Texture2D" uid="uid://dxs8nh8w0hl4r" path="res://assets/Enemies/Bon_Bon (16 x 16).png" id="1_cy4xy"]
[ext_resource type="Texture2D" uid="uid://c34rv3eisv5gk" path="res://assets/Effects/Explosion (16 x 16).png" id="1_mobcm"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bvs7u"]
size = Vector2(2.8, 1.6)
[sub_resource type="Animation" id="Animation_bwcbs"]
resource_name = "bounce"
loop_mode = 1
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ship:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.35),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [2, 1, 0, 3, 0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ship:texture")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_cy4xy")]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("ship:hframes")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [4]
}
[sub_resource type="Animation" id="Animation_n8avp"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ship:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ship:texture")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_cy4xy")]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("ship:hframes")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [4]
}
[sub_resource type="Animation" id="Animation_mxmxa"]
resource_name = "explode"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ship:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_mobcm")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ship:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [6]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("ship:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_tma75"]
_data = {
"RESET": SubResource("Animation_n8avp"),
"bounce": SubResource("Animation_bwcbs"),
"explode": SubResource("Animation_mxmxa")
}
[node name="enemy" type="Area2D" groups=["enemies"]]
script = ExtResource("1_1a4e0")
[node name="ship" type="Sprite2D" parent="."]
texture = ExtResource("1_cy4xy")
hframes = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -7.15256e-07)
scale = Vector2(5, 5.03082)
shape = SubResource("RectangleShape2D_bvs7u")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_tma75")
}
autoplay = "bounce"
[node name="MoveTimer" type="Timer" parent="."]
one_shot = true
[node name="ShootTimer" type="Timer" parent="."]
one_shot = true
[connection signal="timeout" from="MoveTimer" to="." method="_on_move_timer_timeout"]
[connection signal="timeout" from="ShootTimer" to="." method="_on_shoot_timer_timeout"]