2015-04-17 3 views
0

Je viens de commencer avec Cocos2D-x après quelques années en utilisant Cocos2d-iPhone/swift/spritebuilder. Ce que je remarque est que le système de coordonnées dans X ne semble pas utiliser le système POINT commun depuis le développement iOS. C'est-à-dire qu'une boîte de 10x10 points avait 10x10 pixels sur les appareils 1x, 20x20 pixels sur les appareils 2x et ainsi de suite. Donc, ma question est: est-ce que cocos2d-x ne gère que les pixels? Comment pouvons-nous aborder cela dans le code - parce que nous avions l'habitude de mettre un sprite à 50x20 par exemple et il finirait au bon endroit sur n'importe quel appareil indépendamment de la résolution. Pas possible dans cocos2d-x? J'ai 3.5.Cocos2d-x coordonnées

Ce qui serait lié à ce document, mais il est dit qu'il est obsolète. Y a-t-il un document plus récent? Je ne trouve vraiment rien d'autre. http://www.cocos2d-x.org/wiki/Multi_resolution_support

+0

I Je me suis intéressé à cela récemment et j'ai été surpris de ce que j'ai trouvé concernant l'appel de getWinSize, getWinSizeInPixels, et getVisibleSize sur un iPhone 5. Une partie de ma réponse ici est liée à votre question: http://stackoverflow.com/questions/29786958/using- sprite-atlase s-in-a-multi-resolution-setup-in-cocos2d-x/29805409 # 29805409 –

Répondre

2

Vous pouvez vous intéresser à l'utilisation de différents dossiers de ressources pour différentes tailles de résolution. Donc, vous pouvez avoir "/ sd /" pour < 480 hauteur, "/ hd /" pour < 800 hauteur, et "/ ipadhd /" pour les autres.

FileUtils::getInstance()->setSearchResolutionsOrder(...) 

Vous pouvez également modifier le facteur d'échelle de contenu vous-même dans l'utilisation de AppController.mm:

// should behave as if all art is @1x device 
Director::getInstance()->setContentScaleFactor(1.0); 
// should behave as if all art is @2x device 
Director::getInstance()->setContentScaleFactor(2.0); 
// should behave as if all art is @4x 
Director::getInstance()->setContentScaleFactor(4.0); 

Cela n'a pas encore été mis à jour, mais il a encore quelques informations: http://www.cocos2d-x.org/wiki/Multi_resolution_support

+0

Eh bien oui, le deal est de définir * designResolutionSize *. En faisant cela nous aurions une taille de "point" cohérente, et pour une classe d'appareil (comme l'iPhone 5, 5s, 5c), nous n'aurions besoin que d'un seul ensemble de coordonnées. Maintenant, bien sûr, cela devient encore plus difficile parce que les iPhone 4, 6, 6 Plus, les iPads, Androids, etc. ont plus/moins de points que la classe d'appareils. La page que vous avez liée est marquée comme obsolète, mais semble toujours être le seul endroit d'information dans l'ensemble de la communauté Cocos2d-x officielle qui explique ce qui se passe. http://www.cocos2d-x.org/wiki/Multi_resolution_support#designResolutionSize – Jonny

+0

Ouais, je devrais peut-être écrire quelque chose avec un projet de test inclus pour le guide de programmation, sinon je ne pense pas qu'il sera mis à jour pendant un moment . Je sais que c'est l'une des caractéristiques en constante évolution car la multi-résolution et la multi-densité peuvent être difficiles. Android (densité et résolution spécifiques XML et dossiers) est fait différemment d'iOS (@ 2x, @ 3x) –

+0

D'accord. Je travaille d'abord sur des appareils iOS, et je suppose que je pourrai plus tard, pour les appareils Android, utiliser les mêmes ressources à condition d'utiliser une configuration un peu différente. :-P – Jonny