1
我正在開發一個使用cocos2d的iphone應用程序,我在轉換座標從父到子空間時遇到了問題。cocos2d從父到子空間轉換
我有N個元素,其中每個元素都有一個位置(0,0位於左上角而不是左下角),每個元素都可以有父級。如果該元素具有父級,則其位置位於父級的本地座標空間中。
實施例:
Sprite1 at global position(10,10)
Sprite2 at global position(20,20)
Sprite3 at local position(20,20) and at global position(40,40)
Sprite4 at local position(30,30) and at global position(70,70)
當添加一個精靈我計算座標這樣的(沒有父):
CCSprite * sprite = [CCSprite spriteWithFile:image];
CGPoint position = [[CCDirector sharedDirector] convertToGL: ccp(element.x, element.y);
sprite.position = position;
並且由於元件座標空間在左上角開始我必須設置定位點:
sprite.anchor = ccp(0,1)
這適用於沒有父項的元素,但是w如果我添加一個父元素(使用上面的代碼)的位置是錯誤的。我如何正確計算座標(不必遍歷所有父母)?
謝謝。
會欣賞一個例子 – blejzz