Cocos2D CCNode position in absoluten Bildschirm-Koordinaten
Ich habe auf der Suche um für eine Weile, und ich habe nicht in der Lage gewesen, eine Antwort zu finden, um diese aus irgendeinem Grund. Es scheint einfach genug, aber vielleicht habe ich einfach nicht finden können, die richtige Funktion in der Bibliothek.
Habe ich eine Szene mit einer Schicht, die enthält eine Reihe von CCNodes mit jeder CCSprite in Ihnen.
Während der Anwendung, bewege ich mich um die position der Haupt-Ebene, so dass ich "pan", um eine Kamera in einer Art und Weise. (d.h. ich übersetze die gesamte Schicht, so dass der viewport sich ändert).
Nun möchte ich, um die absolute position eines CCNode in Bildschirm-Koordinaten. Die position-Eigenschaft zurückgeben die position relativ zum parent-node, aber ich möchte wirklich diesen verwandelte seine aktuelle position auf dem Bildschirm.
Auch, als zusätzlichen bonus, es wäre fantastisch, wenn ich Ausdrücken könnte diese position als Koordinatensystem 0,0 Karten auf der oberen linken Seite des Bildschirms, und 1,1-Karten an der unteren rechten Ecke des Bildschirms. (Also bleibe ich kompatibel mit allen Geräten)
Edit: Beachten Sie, dass die Lösung sollte für jede Hierarchie von CCNodes vorzugsweise.
InformationsquelleAutor Tovi7 | 2011-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jeder CCNode, und die Nachkommen derselben, hat eine Methode namens convertToWorldSpace:(CGPoint)p
Diese gibt die Koordinaten relativ zu Ihrer Szene.
Wenn Sie diese koordinieren, flip Y-Achse, wie Sie möchten 0,0 in der linken oberen Ecke.
CCDirector nicht displaySizeInPixels in den letzten Versionen von cocos2d. Eine Lösung für dieses? (Gefunden
winSizeInPixels
, könnte es sein.)Ich weiß, das ist alt, aber ist es richtig, dass ich ein worldCoord = (50, 200) (Zeile 6)? Ich würde erwarten, dass worldCoord = (100, 150). Wenn ich durch den Schritt, ich sehe tx = 100, und ty = 150 da die Transformation... die Achsen sind eingeschaltet? Übersehe ich hier etwas offensichtliches?
erstaunliche Antwort.
InformationsquelleAutor nash