bullet hell, asteroid and reaction done,. i think ill drop space invaders , 40 minutes left
This commit is contained in:
parent
82652730f2
commit
c000461fd6
23 changed files with 377 additions and 23 deletions
20
games/asteroids/asteroid.gd
Normal file
20
games/asteroids/asteroid.gd
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
extends Area2D
|
||||
|
||||
var speed : float = 50
|
||||
var target_pos : Vector2
|
||||
@export var sprite : Sprite2D
|
||||
var spin_speed : float = 50
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
sprite.rotation_degrees += spin_speed * delta
|
||||
global_position = global_position.move_toward(target_pos, delta * speed)
|
||||
|
||||
|
||||
func _on_area_entered(area: Area2D) -> void:
|
||||
queue_free()
|
||||
1
games/asteroids/asteroid.gd.uid
Normal file
1
games/asteroids/asteroid.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dculqxasbgkte
|
||||
22
games/asteroids/asteroid.tscn
Normal file
22
games/asteroids/asteroid.tscn
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://chwuh2bbilfn1"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b0sii6paqk3gm" path="res://sprites/asteroid.png" id="1_7d121"]
|
||||
[ext_resource type="Script" uid="uid://dculqxasbgkte" path="res://games/asteroids/asteroid.gd" id="1_aye07"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_7d121"]
|
||||
radius = 46.0435
|
||||
|
||||
[node name="Asteroid" type="Area2D" node_paths=PackedStringArray("sprite")]
|
||||
collision_mask = 2
|
||||
script = ExtResource("1_aye07")
|
||||
sprite = NodePath("Sprite2D")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
position = Vector2(0, -2)
|
||||
scale = Vector2(0.3, 0.3)
|
||||
texture = ExtResource("1_7d121")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_7d121")
|
||||
|
||||
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
|
||||
|
|
@ -3,11 +3,40 @@ extends Node
|
|||
signal game_win
|
||||
signal game_lose
|
||||
|
||||
@export var asteroid_spawns : Array[Node2D]
|
||||
@export var win_progress : ProgressBar
|
||||
@export var win_time : float = 15
|
||||
var alive_time : float =0
|
||||
@export var spawn_time : float = 3
|
||||
@export var player : Node2D
|
||||
var timer : float
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
timer = spawn_time
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
win_progress.value = alive_time/win_time
|
||||
timer -= delta
|
||||
alive_time += delta
|
||||
if timer <0:
|
||||
spawn_new_asteroid()
|
||||
timer = spawn_time
|
||||
if alive_time >= win_time:
|
||||
print("Asteroid win")
|
||||
game_win.emit()
|
||||
|
||||
func spawn_new_asteroid():
|
||||
var newAsteroid : Node2D = load("res://games/asteroids/asteroid.tscn").instantiate()
|
||||
var randSpawn : int = randi_range(0,3)
|
||||
newAsteroid.global_position = asteroid_spawns[randSpawn].global_position
|
||||
newAsteroid.target_pos = player.global_position
|
||||
#newBullet.heading = -newBullet.global_position.normalized()
|
||||
get_parent().add_child(newAsteroid)
|
||||
|
||||
|
||||
func _on_area_2d_area_entered(area: Area2D) -> void:
|
||||
print("Asteroid lose")
|
||||
game_lose.emit()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=8 format=3 uid="uid://bw1hhx7lyfonr"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://bw1hhx7lyfonr"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://brih2jftm2tsa" path="res://games/asteroids/ship_controller.gd" id="1_6dc0m"]
|
||||
[ext_resource type="Script" uid="uid://carkc2diu0xwd" path="res://games/asteroids/asteroids.gd" id="1_j0tb1"]
|
||||
|
|
@ -20,8 +20,14 @@ noise = SubResource("FastNoiseLite_j0tb1")
|
|||
[sub_resource type="CircleShape2D" id="CircleShape2D_dtqgl"]
|
||||
radius = 26.0192
|
||||
|
||||
[node name="Asteroids" type="Node"]
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_j0tb1"]
|
||||
radius = 26.0192
|
||||
|
||||
[node name="Asteroids" type="Node" node_paths=PackedStringArray("asteroid_spawns", "win_progress", "player")]
|
||||
script = ExtResource("1_j0tb1")
|
||||
asteroid_spawns = [NodePath("Spawns/SpawnPoint"), NodePath("Spawns/SpawnPoint2"), NodePath("Spawns/SpawnPoint3"), NodePath("Spawns/SpawnPoint4")]
|
||||
win_progress = NodePath("ProgressBar")
|
||||
player = NodePath("Ship")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
anchors_preset = 15
|
||||
|
|
@ -52,3 +58,39 @@ position = Vector2(30, 0)
|
|||
|
||||
[node name="BulletGoal" type="Marker2D" parent="Ship"]
|
||||
position = Vector2(459, 0)
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="Ship"]
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ship/Area2D"]
|
||||
shape = SubResource("CircleShape2D_j0tb1")
|
||||
|
||||
[node name="Spawns" type="Node2D" parent="."]
|
||||
|
||||
[node name="SpawnPoint" type="Marker2D" parent="Spawns"]
|
||||
position = Vector2(-92, -85)
|
||||
|
||||
[node name="SpawnPoint2" type="Marker2D" parent="Spawns"]
|
||||
position = Vector2(724, -92)
|
||||
|
||||
[node name="SpawnPoint3" type="Marker2D" parent="Spawns"]
|
||||
position = Vector2(742, 445)
|
||||
|
||||
[node name="SpawnPoint4" type="Marker2D" parent="Spawns"]
|
||||
position = Vector2(-108, 435)
|
||||
|
||||
[node name="ProgressBar" type="ProgressBar" parent="."]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
custom_minimum_size = Vector2(32, 0)
|
||||
anchors_preset = 11
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -4.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
max_value = 1.0
|
||||
step = 0.0
|
||||
fill_mode = 3
|
||||
show_percentage = false
|
||||
|
||||
[connection signal="area_entered" from="Ship/Area2D" to="." method="_on_area_2d_area_entered"]
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
radius = 7.0
|
||||
|
||||
[node name="Bullet" type="Area2D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 3
|
||||
script = ExtResource("1_hy4j0")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue