Ausgabe
In Cocos2D möchte ich, dass ein Sprite auf einer Bildschirmkoordinate platziert wird, nicht auf einer Kartenkoordinate. Ich dachte, ich könnte ConvertToNodeSpace verwenden, aber es scheint nicht das zu tun, was ich will.
Ich dachte, dies sollte ein Sprite in der Mitte meines iPad-Bildschirms platzieren:
selectionScreenOverlaySprite.position = [self convertToNodeSpace:CGPointMake(512, 384)];
Aber das tut es nicht. Es platziert es auch an einer anderen Stelle, abhängig von der Größe meiner Karte. Weiß jemand, was ich verwenden sollte? Ich habe auch versucht: convertToWorldSpace, convertToNodeSpaceAR und convertToWorldSpaceAR.
Lösung
Versuche dies:
CGSize wins = [[CCDirector sharedDirector] winSize];
[yourSprite setPosition:CGPointMake(wins.width / 2, wins.height / 2)];
Dies ist besser als die Verwendung hartcodierter Werte, da es unabhängig von der Auflösung funktioniert.
Beantwortet von – eric.mitchell
Antwort geprüft von – Jay B. (FixError Admin)