精灵定位不正确

时间:2013-11-24 18:05:22

标签: ios objective-c sprite-kit

我正在研究(测试)游戏,以学习SpriteKit尝试制作自己的纸牌游戏。

我正在创建一个应该由SKAction移出的侧栏,它自动运行的动画。我为iPhone和iPad创建了一个正确尺寸的黑色条,称为“backmenu~iphone.png”(50p)和“backmenu~ipo.png”(100p)。

我遇到的问题是我能够正确地将黑色条放在iPhone上,但不能放在iPad上,它定位于低位,我无法弄清楚我做错了什么。我设置了anchorPoints并将精灵放在相同的坐标上。精灵的大小正确。

代码:

SKSpriteNode *menuOnMainScreen = [SKSpriteNode spriteNodeWithImageNamed:@"backmenu"];
        menuOnMainScreen.anchorPoint = CGPointMake(0.0, 0.1);
        menuOnMainScreen.position = CGPointMake(_menuPositionOutsideOfScreen, 0);
        menuOnMainScreen.name = @"backmenu";
        menuOnMainScreen.zPosition = 1000;
        [self addChild:menuOnMainScreen];

        SKAction *moveMenuIntoScreen = [SKAction moveTo:CGPointMake(0, 0) duration:0.3];
        [menuOnMainScreen runAction:moveMenuIntoScreen];

        SKSpriteNode *arrowLeft =  [SKSpriteNode spriteNodeWithImageNamed:@"arrow_left"];
        arrowLeft.anchorPoint = CGPointMake(0.5, 0.5);
        arrowLeft.position = CGPointMake(_setWidthPositionInSideMenuCoordinate, CGRectGetMaxY(self.frame) * 0.95);
        [menuOnMainScreen addChild:arrowLeft]; 

使用以下参数:

  iPhone上的

_menuPositionOutsideOfScreen = -50

     iPad上的

_menuPositionOutsideOfScreen = -100

当我运行代码时,它看起来如下,左边的iPhone和右边的iPad:

iPhone enter image description here

2 个答案:

答案 0 :(得分:0)

我认为问题是你anchorPoint的y是0.1

不应该是:

menuOnMainScreen.anchorPoint = CGPointMake(0,0);

答案 1 :(得分:0)

如果你使 anchorpoints 0.5,0.5并在y方向上将它们置于 self.size.height / 2 ,并且 _menuPositionOutsideOfScreen ,该怎么办? x方向?

在没有更多代码的情况下测试它有点困难,但尝试一下