Simple stuff right. Anyway, I wanted to ask if there's a better way of creating bullets. Because right now, if I wanted to create a shit ton of bullets, I could make an array full of bullets and simply spawn them. That's cool until you get into spawning thousands of bullets, it's not time efficient to write each object yourself, so my question is how would you do it?

I would make an array (or vector) of Bullet objects and have a var index:int that will tell me what the last used bullet in the array was.

So the implementation would go somewhat like this:

function spawnBullet():void
{
//Pseudo code
//Take the Bullet at position index and "activate it"(by activating I mean setting it's position and adding listeners)
index = (index+1) % MaxNumberOfBullets;
}
// This next function I would call every few frames (it depends)
function cleanUp():void
{
//Again pseudo code
//Go through the array of bullets and check if they are ready for "deletion" (by deletion I mean removing the listeners and
//maybe making them invisible)
}

Now what this should do is it will allow you to always have a free bullet object that is hopefully destroyed (unless somehow you needed more bullets than the array could hold, in that case you increase the maximum size and add more bullets to the array) and it will make removing them not really taxing on the PC.

Ofcourse, the special case is when a bullet hits an enemy and it disapears but yout can solve that by implementing a function that will deactivate the bullet which you can, again, call in the cleanUp function instead of handling it manually.

I would make an array (or vector) of Bullet objects and have a var index:int that will tell me what the last used bullet in the array was.

So the implementation would go somewhat like this:

function spawnBullet():void
{
//Pseudo code
//Take the Bullet at position index and "activate it"(by activating I mean setting it's position and adding listeners)
index = (index+1) % MaxNumberOfBullets;
}
// This next function I would call every few frames (it depends)
function cleanUp():void
{
//Again pseudo code
//Go through the array of bullets and check if they are ready for "deletion" (by deletion I mean removing the listeners and
//maybe making them invisible)
}

Now what this should do is it will allow you to always have a free bullet object that is hopefully destroyed (unless somehow you needed more bullets than the array could hold, in that case you increase the maximum size and add more bullets to the array) and it will make removing them not really taxing on the PC.

Ofcourse, the special case is when a bullet hits an enemy and it disapears but yout can solve that by implementing a function that will deactivate the bullet which you can, again, call in the cleanUp function instead of handling it manually.

Hope it helps you ;)

(Solved my own question by replying to this reply)

Yep, that could work. Create an array with a shit ton of bullets, make the one's that aren't in use null and when we need some new bullets we can just scan the array for the ones that we're not using. That's what I had in mind. My problem was that I didn't know that you didn't need to specify a name for an object when putting it into an array.

//I did this
var bulletA:bullet = new bullet();
var ary:Array = new Array(9000);
ary[0] = bulletA
//Instead of doing this-
var ary:Array = new Array(9000);
ary[0] = new bullet();
//I thought that you need a name for an object when putting it into an array, my problem was generating names for all the objects. Since you don't need a name for the object, then I can just put this shit in a for-loop and generate 9000 bullets. Thanks for the reply!

I'm still open to more efficient ways of creating bullets though, but for now this will do. Thanks!