32 lines
717 B
GDScript
32 lines
717 B
GDScript
extends Node
|
|
|
|
var bulletsFiredTotal := 0
|
|
var bulletsMadeTotal := 0
|
|
var bulletArray:Array = []
|
|
|
|
var bullet = preload("res://scenes/bullet.tscn")
|
|
|
|
func bulletFactory():
|
|
print("Make a bullet at the factory")
|
|
var mybullet
|
|
|
|
# How many bullet have been made
|
|
if bulletArray.size() < 4:
|
|
# make a new bullet
|
|
mybullet = bullet.instantiate()
|
|
mybullet.connect("hit", onBulletHit)
|
|
owner.add_child(mybullet)
|
|
else:
|
|
mybullet = bulletArray.pop_back()
|
|
bulletArray.push_front(mybullet)
|
|
bulletsMadeTotal += 1
|
|
return mybullet
|
|
|
|
func onBulletHit(bullet, body):
|
|
print("Scene Manager knows a bullet hit something")
|
|
bullet.setSpeed(0)
|
|
|
|
if body.is_in_group("shootable"):
|
|
print("explode this thing")
|
|
body.queue_free()
|