Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | AbDevTM |
I’m making a space shooter game and I want more meteors to spawn when my player destroys a large one. But the children keep spawning in the same position instead of a random position of the parent position.
Here’s my code:
extends Area2D
var pChilds := preload("res://Res/Scenes/Player/Meteor/MeteorSmall.tscn")
var pMeteorEffect := preload("res://Res/Scenes/Player/Bullet/MeteorEffect.tscn")
export var minSpeed: float = 10
export var maxSpeed: float = 20
export var minRotateRate: float = -30
export var maxRotateRate: float = 30
export var life: int = 20
var playerInArea: Player = null
var speed: float = 0.0
var rotationRate: float = 0
func _ready():
speed = rand_range(minSpeed, maxSpeed)
rotationRate = rand_range(minRotateRate, maxRotateRate)
func _process(delta):
$Sprite/AnimationPlayer.play("idle")
if playerInArea != null:
playerInArea.damage(1)
func _physics_process(delta):
rotation_degrees += rotationRate * delta
position.y += speed * delta
func damage(amount: int):
life -= amount
if life <= 0:
var effect = pMeteorEffect.instance()
var kid1 = pChilds.instance()
var kid2 = pChilds.instance()
var kid3 = pChilds.instance()
effect.position = position
#I want this positions to be different
kid1.position = position
kid2.position = position
kid3.position = position
#So where the meteor is destroyed three meteors at different locations will be spawned
get_parent().add_child(effect)
get_parent().add_child(kid1)
get_parent().add_child(kid2)
get_parent().add_child(kid3)
queue_free()