2010-06-20 68 views
1

我試圖在iPhone Cocos2D遊戲中同時支持橫向和縱向方向,但我無法正確獲取座標。在iPhone上使用Cocos2d支持不同的方向

這是我到目前爲止所做的。

我有一個GameWorld圖層,我總是保持肖像,不管設備的方向如何。以下代碼位於UIDeviceOrientationLandscapeLeft的DeviceRotated事件中。 (「自我」是我的遊戲世界層)

[self runAction:[CCMoveTo actionWithDuration: 0.25f position:ccp(80, 0)]]; 

[self runAction:[CCRotateTo actionWithDuration:0.25f angle:90]]; 

,這樣我就不用寫每個方向我希望能使用下列在我的Sprite類翻譯雪碧座標不同的代碼。

CGPoint spriteLoc = ccp(0,0); 

CGPoint translatedSpriteLoc = [self.parent convertToNodeSpace:spriteLoc]; 

self.position = translatedSpriteLoc; 

但是,這是行不通的。

如果設備處於肖像模式,精靈在左下角,我將設備向左旋轉,精靈將出現在右下角。我想讓雪碧像風景一樣在風景的左下角。

我錯過了什麼或有沒有更好的方法來翻譯座標?

回答

0

那麼,如果您在切換方向時不介意「跳躍式切換」,則可以使用Cocos2d中的內置方向支持。見this post at the Cocos2d forums

但是,如果您需要相當方向,您可能需要按照上面顯示的內容進行操作,通過使用操作進行旋轉來手動定向。

沒有更詳細,很難說爲什麼你的方法是行不通的,但我的猜測您看到您描述爲的事實,如果你不改變方向造成的精靈定位,縱向左下方是向左旋轉時橫向右下方,即GL空間中的相同點:(0,0)。您將不得不移動GameWorld圖層的「原點」並旋轉它。

嘗試將全屏圖像添加到圖層,以查看旋轉它時實際發生的情況。這應該有助於縮小你需要做的事情。