This commit is contained in:
2025-09-04 19:18:28 +02:00
parent 3f2ca68a4f
commit 6e599c8f1c
5 changed files with 30 additions and 26 deletions

View File

@@ -3,13 +3,12 @@ extends RigidBody2D
var SPEED : float
var direction : Vector2
var type:= 1
var is_firt_entree := true
@export var particles := load("res://destroy.tscn")
@export var particles := load("res://scene/destroy.tscn")
@export var asteroidx1 : = load("res://asteroidx1.tscn")
@export var asteroidx2 : = load("res://asteroidx2.tscn")
@export var asteroidx3 : = load("res://asteroidx3.tscn")
@export var asteroidx1 : = load("res://scene/asteroidx1.tscn")
@export var asteroidx2 : = load("res://scene/asteroidx2.tscn")
@export var asteroidx3 : = load("res://scene/asteroidx3.tscn")
func _ready() -> void:
@@ -43,6 +42,8 @@ func split():
second.direction = direction
first.global_position = position + (2**type * nor)
first.type = type-1
first.set_collision_layer(3)
second.set_collision_layer(3)
second.global_position = position - (2**type * nor)
second.type = type-1
var parent = get_parent()
@@ -55,7 +56,9 @@ func split():
func _on_body_entered(body: Node) -> void:
if body.is_in_group("asteroid"):
get_parent().add_collision(body, self)
if body.is_in_group("shoot"):
get_parent()._add_collision(body, self)
elif body.is_in_group("shoot"):
body.queue_free()
split()
else:
direction = -direction

View File

@@ -6,9 +6,11 @@ extends Node2D
@export var asteroidx4 : PackedScene
@export var player : CharacterBody2D
@export var distance:= 600.0
@export var delay_spawn := 3.0
var current_time := 0.0
var current_time := 50.0
signal add_collision
var list_of_collision_1 : Array[Node]
var list_of_collision_2 : Array[Node]
@@ -35,10 +37,11 @@ func _process(delta: float) -> void:
spawn()
func spawn_duplicate(asteroid: Node2D):
var dup = asteroid.duplicate()
dup.position = (asteroid.position - Vector2(320, 320)).rotated(PI/2) + Vector2(320, 320)
dup.direction = (asteroid.direction - Vector2(320, 320)).rotated(PI/2) + Vector2(320, 320)
add_child(dup)
var dup = asteroid.duplicate(DUPLICATE_USE_INSTANTIATION)
dup.currently_in = true
dup.position = (asteroid.position - Vector2(320, 320)).rotated(PI) + Vector2(320, 320)
dup.direction = asteroid.direction
call_deferred("add_child", dup)
func spawn():
var choice = randi_range(1, 4)
@@ -61,7 +64,7 @@ func spawn():
add_child(new)
func add_collision(body1 : Node, body2: Node) -> void:
func _add_collision(body1 : Node, body2: Node) -> void:
for i in range(list_of_collision_1.size()):
if list_of_collision_1[i] == body1 and list_of_collision_2[i]== body2:
return

View File

@@ -1,7 +1,8 @@
extends Node2D
@export var spawner: Node2D
func _body_entered_for_multiple(body: Node2D) -> void:
if body.is_in_group("asteroid") and body.get("is_firt_entree") == false:
spawner.spawn()
func _on_area_2d_body_exited(body: Node2D) -> void:
if body.is_in_group("asteroid"):
body.set_collision_layer(3)
body.set_collision_mask(3)