Put everything you don't need interacting with your main characters on different layers. Just do it. The performance gains are real.
Make sure no images are stretched beyond 2048 pixels in any one dimension.
Crop your images as tightly as possible in image editor to get rid of as much extraneous Alpha pixels as possible
Use partial opacity sparingly, particularly on big images
Try to make everything you can think of a spawned item. When in doubt, spawn and destroy the original
Recycle particle systems by moving them to where you need them and restarting them instead of creating new ones
Edit sounds in audio editor so there's absolutely no clipping. OpenAL/cocos2D tries to reduce clipping and does so in a very costly manner
Don't be tempted to use the pitch change. It seems to be a live change and exasperates the clipping performance issue above. Record uniquely pitched sounds instead, and pick and play the ones you need
Preplay your sounds, with silent volume if need be, so they're cached before they need to be played. I don't know why this works, but it seems to make a big difference. I thought we were beyond the time in history when we needed to do things like this for audio on iOS.
Use Exponential eases on Colour changes with caution. They're costly. If at all possible, use Linear "eases". For colour changes, they're noticeably cheaper than others.
Push everything you need to store into central arrays. Use them as global storage. Faster and lighter and more reliable than Value and Box Containers.
Make everything you can into a Background image (not physics and not static/walls). Way less physics checking. If you can do this with things and not need to worry about them again, then you know these things are also suited to being put on another layer. So do that and forget about them.
Use broadcast and receive for every single thing you can think of. All the time. This way you can centralise everything and find anything and everything you need in little managers. Animation manager, Sprite Manager, Sound Manager, Creation Manager, etc.
Don't update labels frequently. They are unbelievably slow at any size that looks good.
The more behaviours inside spawned objects, the laggier it will be to spawn them. Try to take behaviours out of spawned objects and put them in something else. If the spikes activate some behaviours when they touch the player, try to delete them and put them in the player instead, stuff like that. Could even put them all in a tag and have the world move all the objects at once rather than each object moving itself (though I'd still recommend just having the player move and the objects stand still).
@hamed To you and anyone else wondering why, the duplicate scenes not working the same as the original is due to the bug wherein loaded scenes revert to 60Hz physics update. I was/am using 240Hz physics. So can't have more than one scene, due to this bug. I reported this discovery in the final comment, here: https://forum.hyperpad.com/topic/828/scenes-are-broken
On subject, I have found a way to get combining incrementation to uniquely identify and somewhat reference objects so a parent can instruct its child and a child can report back. It was messy, and contrived, and a pain in the butt. And needs to be completely rewritten for every type of object desiring relationships... so copy/paste would help. A lot. Or split screen.
Glad to see you back, @Hamed
@pinkie-pie It's hard to know IF this is a serious question.
IF it is:
"If" is a conditional, and shorthand for:
"if this condition is true, then do this.
If not true, then don't."
An If behaviour needs three things:
1. An input that can be assessed for true or false
2. A condition criteria checking if input is true or false
3. An Output Behaviour to perform if the above is true
Else if having a lark, this is for others.
We're doing final testing on the update starting this Friday. Hoping to have it submitted to Apple by middle of next week.
This took way longer than we wanted, and we're sorry about that. We got caught up working on some deals for the business side of things and this interfered with the update.
Programmers are busy programming. They lurk the forums. If they want to introduce them selves they can.
on iOS 11, I've tried Quicktime to a Mac, iOS onboard recording and Screenflow.
Screenflow is worth the extra cost if resolution is important to you, it's the only one that will sustain it..
Screenflow's editor is a bit of a funky, infuriating mess. If you've got any experience in Premiere or FinalCut, go back to them for editing.
Quicktime requires messing around with an audio pass through device that's tricky to set up, and doesn't record in HQ for very long before dropping to a much lossier and uglier mess.
The onboard iOS recorder is the worst, it will happily drop to 240p in no time at all. And it's not a good looking pixelation, it's a blurry mess.
One of the advantages of all of these, they fire enough and do enough to constantly interrupt CADisplayLink - this causes the cocos2D loop bug in hyperPad to constantly get reset, so you get smoother gameplay than normal.