Are you dealing with 3D or 2D? In 3D you don't duplicate as images, but you can make objects using the same mesh and texture. In 2D, you just make another sprite using the same image.
In Firewall I have 50 ammo objects per team. At the beginning of the game, during setup, I do this: (numopp is the number of opponents)
dim ammo(numopp+1,50):dim ammo_on(numopp+1,50)
for a=1 to numopp+1
for i=1 to 50
inc numobject:ammo(a,i)=numobject
load object "Data/Models/Ammo.3ds",ammo(a,i)
next i
next a
When ever a robot shoots, the game goes through a subroutine to look for an unused ammo object:
findammo:
for i=1 to 50
if ammo_on(player,i)=0
ammo_on(player,i)=1:foundammo=i:goto donefindammo
endif
next i
donefindammo:
return
(then it positions and sets up the ammo object that was just found)
Then, in the game loop, it looks through the ammo objects, checks if each one is on, and manages it. (I use many more arrays than I showed, like the ammos' angles, speeds, powers, etc...)
Xander Moser of Bolt Software
Firewall: Your Computer's First Defense - Real Time Strategy game
[href]
[/href]