Question: If I have several identical sprites on the screen at once, do I need to load one image for each of the sprite, or can I simply re-use the images somehow? 

i.e,

Do I need to do this?

```
CCSprite *mySprite1 = [CCSprite spriteWithFile:@"mySprite.png"];
CCSprite *mySprite2 = [CCSprite spriteWithFile:@"mySprite.png"];

```

Or is there a better way to deal with identical sprites?

Answer: 
Your solution is fine. The first call to spriteWithFile: will load the texture and add it to the shared CCTextureCache. The second one will check to see if the texture already exists, and this time will reuse it from the first one.
You should propably use 

```
- (id)initWithCGImage:(CGImageRef)image
                  key:(NSString *)key   

```

[Reference](http://www.cocos2d-iphone.org/api-ref/0.99.0/interface_c_c_sprite.html#a0ba4f6f3484ee5940a88ab35696583ce)

This method uses either image or a cached texture named by key. If no cached texture with this key is available, it'll create a texture and cache it for you.