Я пытаюсь поддерживать как альбомную, так и портретную ориентации в моей игре iPhone Cocos2D, но у меня возникают проблемы с получением координат для правильного перевода.
Вот что я делаю до сих пор.
У меня есть слой GameWorld, который я всегда держу в портрете, независимо от ориентации устройства.Следующий код находится в моем событии DeviceRotated для UIDeviceOrientationLandscapeLeft.(«self» - это мой слой GameWorld)
[self runAction:[CCMoveTo actionWithDuration: 0.25f position:ccp(80, 0)]];
[self runAction:[CCRotateTo actionWithDuration:0.25f angle:90]];
Чтобы мне не приходилось писать разные коды для каждой ориентации, я надеялся использовать следующее в своем классе Sprite для перевода координат Sprite.
CGPoint spriteLoc = ccp(0,0);
CGPoint translatedSpriteLoc = [self.parent convertToNodeSpace:spriteLoc];
self.position = translatedSpriteLoc;
Однако это не работает.
Если устройство находится в портретном режиме со спрайтом в левом нижнем углу, и я поворачиваю устройство влево, спрайт появляется в правом нижнем углу.Я хочу, чтобы спрайт был в левом нижнем углу в пейзаже так же, как в портретной.
Я что-то упустил или есть лучший способ перевести координаты?