Iphone Cocos2d,使用CCParallaxNode时的奇怪位置偏移

Iphone Cocos2d,使用CCParallaxNode时的奇怪位置偏移,iphone,ios,cocos2d-iphone,Iphone,Ios,Cocos2d Iphone,我在iOS上使用cocos2d。不确定我是否在这里做错了什么,或者CCParallaxNode是否做了一些我不理解的奇怪的事情 我试图在我的游戏背景中创建几层视差滚动,目前我只在视差节点中添加了一层,直到我能找出哪里出了问题。当游戏加载图层时,它总是向下偏移,留下大约30%的图像大小。我上传了一张图片,展示了位置的不同 这是我的密码: background = [CCParallaxNode node]; background.anchorPoint = ccp(0,0); background

我在iOS上使用cocos2d。不确定我是否在这里做错了什么,或者CCParallaxNode是否做了一些我不理解的奇怪的事情

我试图在我的游戏背景中创建几层视差滚动,目前我只在视差节点中添加了一层,直到我能找出哪里出了问题。当游戏加载图层时,它总是向下偏移,留下大约30%的图像大小。我上传了一张图片,展示了位置的不同

这是我的密码:

background = [CCParallaxNode node];
background.anchorPoint = ccp(0,0);
background.position = ccp(0,0);
[self addChild: background];

background_image = [CCSprite spriteWithFile: @"layer01.png"
                                      rect: CGRectMake(0, 0, 100, 100)];
background_image.anchorPoint = ccp(0,0);
background_image.position = ccp(0,0);

[background addChild: background_image z:0 parallaxRatio: ccp(0,0) positionOffset:ccp(0,0)];
cocos2d图标与视差节点连接到同一层,其位置和定位点设置为0,0,因此图标的左下角应与蓝色背景图像的左下角位于同一位置

我已经用一个基本的精灵来代替视差节点进行了测试,所有的东西都按它应该的方式排列,所以它不是图像本身

在此方面的任何帮助都将不胜感激

确保背景图像大小为480x320

你为什么写CGRectMake0,0,100,100?为什么是100和100?你限制了你的CGRect,这可能是错误的


首先,我不建议您直接设置视差节点及其子节点的锚点和位置,因为它会导致一些意外的结果。您应该将视差节点作为其子节点添加到层中,并设置层的定位点和位置以放置视差

其次,CCParallaxNode还提供了一个位置偏移,您可以首先将图片放置在视差中。如果您想将多个图片层的视图中心对齐,这会有所帮助

因此,我认为您应该这样做,因为我使用的是cocos2d-x,我不确定它是否适合obj-C:

layer = [[CCLayer alloc]init];
background = [CCParallaxNode node];
[layer addChild: background];
[self addChild: layer];
然后,您只需在背景中添加图片精灵,并设置层的位置和锚定点


希望能有所帮助。

为什么背景图像需要为480x320?我把它改成1024而不是100,我只是在玩的时候把它改成了100。我不明白为什么这会有不同?因为这是iPhone的屏幕比例。尝试将其设置为480x320,然后将CGRectMake更改为0,0480320或0,0320480,看看这是否解决了您的问题。尝试没有错!