FAQ: cocos2d for iPhone: All-Seeing Interactive's Performance Tips for cocos2d-iphone Comments Feed" href="http://www.learn-cocos2d.com/knowledge-base/cocos2d-iphone-faq/feed/"/>

FAQ : cocos2d pour iPhone : la Tout-vue des Bouts de Performance d'Interactive pour cocos2d-iphone All-Seeing Interactive's Performance Tips for cocos2d-iphone

Fouillez mon cocos2d pour FAQs & Tutorials iPhone

Notez s'il vous plaît que la recherche de blog au bon coin supérieur ne fouille pas mon FAQs et Classes de travaux dirigés.
 

  • Notez : ne partagez pas s'il vous plaît de liens de téléchargement directs vers les dossiers PDF, les liens de téléchargement expirent après les minutes de paire!

Juste un lien mais un très utile :
http://allseeing-i.com/Performance-tips-for-Cocos2d-for-iPhone

Voici une vue d'ensemble rapide ce que l'article couvre :

Le fait de dresser le portrait avec les Instruments
L'essai sur de différents appareils
Textures et Atlas de Texture
Le fait d'accélérer des temps chargeants
Réduction de l'usage de mémoire
Le fait de basculer des textures
Formats de pixel
PVRTC (la Compression de Texture)
CCSpriteSheet
Pré-rendez des textures produites de programatically
Évitez d'utiliser accessors atomique
Lisez la meilleure documentation de pratiques

Leçon de Téléchargement PDF

Commentaires (0)

11 Réponses “à FAQ : cocos2d pour iPhone :

la Tout-vue des Bouts de Performance d'Interactive pour cocos2d-iphone” All-Seeing Interactive's Performance Tips for cocos2d-iphone”
  1. Max dit :

    Le fait d'éclairer le poste. Merci!

    Et, évidemment, j'ai quelques-uns la question :)

    - tout est relatif, mais pour le code commun est mieux d'utiliser NSString, NSArray (et payer le prix de créer de nouveaux objets) ou les variables ? Qui peut être les paramètres pour choisir entre chacun ?

    - Je me demande si nouvel iPhone 4.0′s la plus grande performance sera une édition. Les jeux qui courent doucement dans de 1e et 2ème appareils de génération iPhone courront probablement trop vite ?

    • GamingHorror dit :

      Salut Max,

      je doute que les NSMutable* datasets soient des tueurs de performance. Je n'ai pas fait d'épreuves mais je suis sûr assez que si vous ne les changez pas du tout ils joueront probablement aussi bon que les non-variables. Maintenant, une fois vous *do* a besoin de changer les gammes ou les ficelles il est bon de les avoir variable pour que le truc soit fait attention pour vous en coulisses. D'autre part, si vous savez que vous créerez seulement les articles une fois, mais jamais réordonner, enlever ou ajouter que d'autres utilisent alors les non-variables. Pour moi c'est une affaire de cas d'utilisation plutôt que la performance. Now, once you *do* need to change the arrays or strings it’s good to have them mutable so that stuff is taken care for you behind the scenes. On the other hand, if you know that you’ll only be creating the items once but never re-order, remove or add others then use the non-mutable ones. For me it’s a matter of use case rather than performance.

      Les jeux ne courront pas plus vite sur de plus nouveaux appareils. cocos2d’s CCDirector s'en assure. Vous vous améliorez framerates évidemment, mais pas plus vite gameplay. Cela tient c'est vrai pour tous les moteurs de jeu modernes. You do get better framerates of course but not faster gameplay. That holds true for all modern game engines.

  2. Sean dit :

    Salut gaminghorror. Merci pour toutes les grandes informations sur votre blog:) le trouvant Vraiment utile.

    J'ai voulu demander de votre code de fond de parallaxe au-dessus – je l'utilise dans un projet d'essai, mais ne peux pas sembler finir par le fait de couvrir de tuiles aller tout à fait à côté d'eachother. En d'autres termes, mon lutin que je couvre de tuiles (qui est 480, 320 dans la grandeur) couvre de tuiles, mais quand le nouveau lutin commence, il y a un espace noir environ 25 pixels larges entre le nouvel et le vieux. Là une voie est-elle à elliminate cet espace ? J'ai essayé de fouiller les forum cocos2d et cetera et ai trouvé des informations sur la 2ème projection éteignant et cetera … mais rien de cela ne m'a aidé jusqu'ici … à essayer et illustrer ce que je reçois, c'est ce que je deviens défilant à travers l'écran d'appareil (le x's sont le lutin l'espace blanc est l'espace noir que je reçois) : Is there any way to elliminate this gap? I have tried searching the cocos2d forums etc, and found info on 2D projection turning off etc… but none of that has helped me so far… To try and illustrate what I am getting, this is what I get scrolling across the device screen (x’s are the sprite white space is the black gap I get):

    xxxxxxxxxxxxxxx | |xxxxxxxxxxxxxxxx | |xxxxxxxxxxxxxxxxxx | |xxxxxxx

    • GamingHorror dit :

      Cela semble être un rejeton de placement, êtes-vous sûrs que les lutins sont exactement 480 pixels à part chacun ? Tous les deux ont besoin aussi d'avoir même anchorPoint. Et si vous changez l'échelle des lutins, le rejeton a besoin d'être aussi réglé convenablement. And if you change the scale of the sprites, the offset also needs to be adjusted appropriately.
      Vous pourriez vouloir évaluer le placement avec de plus petits lutins pour qu'au moins deux d'entre eux aillent entièrement sur l'écran.

      • Sean dit :

        Salut GamingHorror, merci bien pour la réponse:) si ce matin je me suis réveillé et avais un esprit clair – y a pensé pour le peu de temps - Mon lutin pour le fond est exactement 480×320 – c'est-à-dire screensize. L'espace que je voyais presque a visité 20-30 pixels entre chaque lutin répété. Donc j'ai pensé, hé, à 480, on me donne juste une texture qui est 512 dans le droit de grandeur ? Ainsi peut-être son action d'un plein 512pixel la texture. Donc je suis retourné pour photofaire des achats et ai augmenté ma largeur de lutin à 512 (comme moi wouldnt perdent n'importe quelle performance de toute façon) et y a donné un essai, en utilisant votre code : So I thought, hey, at 480, I am just being given a texture that is 512 in size right? So maybe its doing a full 512pixel texture. So I went back to photoshop, and increased my sprite width to 512 (as I wouldnt lose any performance anyway) and gave this a try, using your code:

        CCSprite *background = [CCSprite spriteWithFile : "tile1.png"
        rect:CGRectMake (0,0, 480*50, 320)];
        [moi addChild:background];
        [le fond setPosition:ccp (winSize.width/2, winSize.height/2)];
        ccTexParams params = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
        [background.texture setTexParameters:¶ms];

        et cela l'a réglé! Plus aucuns espaces. Merci bien pour les flèches aussi – je n'avais pas pensé à anchorPoints! Merci mille fois pour le grand blog. Je suis souscrit! Thanks so much for the pointers too – I hadn’t thought about anchorPoints! Thanks again for the great blog. I am subscribed!

        • GamingHorror dit :

          Ah oui, si vous utilisez GL_REPEAT alors la grandeur d'image doit être un pouvoir de deux. Eg 64×64 ou 512×128

          • Sean dit :

            Impressionnant – qui nettoie des choses pour moi et a le sens parfait maintenant. Merci pour la confirmation. Ma parallaxe layered défilante semble douce maintenant! My layered parallax scrolling is looking sweet now!

  3. Sean dit :

    Ainsi une autre question rapide … je suppose qu'il ne sera pas possible d'utiliser un spritesheet avec GL_REPEAT ? Surtout la voie vous avez besoin de créer un CGRect …

    Actuellement je fais d'autres graphiques de spritesheets comme cela :

    CCSprite *projectile = [CCSprite spriteWithSpriteFrameName : "missile.png"];

    Qui sont chargés de mon.plist / spritesheet. Non possible à assigner le fond GL_REPEAT comme cela ?

    • Comme GL_REPEAT est un paramètre de texture, il s'applique à la texture entière, donc vous devrez utiliser une texture d'image simple et la grandeur doit être un pouvoir de 2, eg 128×16 ou 256×256.

      Cela exclut aussi l'utilisation de spritesheet.

  4. Mattis dit :

    En utilisant cette technique il travaille bien dans le simulateur, mais sur l'appareil la texture est super-blocky et pixellated. Je dirige cette épreuve sur cocos2d 0.99.5.

    Ive a essayé tant avec 256×256 qu'avec 512×512 les textures et le résultat est le même. Le simulateur se répète tout à fait, les étendues d'appareil et pixellates la texture terriblement.

    Avez-vous une idée pourquoi cela arrive ?

Quittez une Réponse

prime wordpress thèmes