I'm working on an app for a client that takes your photo and does what is essentially a mosaic effect. We were then planning on performing dynamic animations to transition these "blocks" in and out of the screen. The problem is there are 2400 of them (the image mosaic is 40 x 60 blocks), and my edge phone just can't quite handle 2400 atlas animations at once. (It drops to 5fps or so.)
The obvious solutions would be to either reduce the number of blocks (sprites), or to perform an animation that doesn't require each of the 2400 objects to be unique. Unfortunately changing the resolution is not a great option at this point. (Read: the client has demanded it.) Changing the app so it doesn't require unique animations for each block is possible but not ideal. Our team really likes the animation effect. (It runs fine on a 3GS!) And even more than that we like the flexibility of the atlasanimation, allowing us to possibly come up with other animations easily.
So here's the question. Looking at what's possible with particle systems and other apps out there, it seems that what we want should be possible, but the atlassprite/atlasanimation system (and maybe even cocos2d) is probably just not designed for it. What are some other things within cocos2d that I should be looking at? Is there a way to maybe batch some of these calls together a little bit? Should I be using something other than atlassprites/atlasanimations? Would the particle system even be an option?
Some more info:
• I've done a couple of iPhone apps at this point, but I'm still super new to Objective-C and this is my first time working with cocos2d.
• There are technically only 15 unique animations, because there are only 15 different colors of blocks. Could there be a way to leverage that to fewer graphics calls?
Thanks in advance!