Jor*_*gel 5 iphone cocos2d-iphone
我试图在一个图层上放置一系列精灵,但由于我想将所有精灵作为一组移动,我创建了一个CocosNode,将其设置为与屏幕相同的大小并将其放置在屏幕的中心.屏幕,然后将Sprite添加到该节点(lightNode),而不是将它们添加到图层.
我所看到的是,与将它们放在图层而不是在lightNode中相比,精灵不会出现在正确的(相同的?)位置.
我使用XCode Cocos2d应用程序模板"Hello World"制作了一个测试程序来显示问题 - 然后我用这段代码替换了HelloWorldScene.m中HelloWorld类的-init()方法.
-(id) init
{
if( (self=[super init] ))
{
// create my parent node that will contain all the related sprites
lightPane = [[CocosNode alloc] init];
CGSize paneSize = { 480, 320 };
[lightPane setContentSize:paneSize];
[lightPane setPosition:ccp(240, 160)];
// add pane to layer
[self addChild:lightPane z:0];
// add a series of sprites to demonstrate the problem
int y = 40;
int x;
for (x=30; x<300; x+=20)
{
Sprite *sp = [Sprite spriteWithFile:@"pause.png"];
[sp setPosition:ccp(x, y)];
NSLog(@"Next sprite at position (%d, %d)", x, y);
[lightPane addChild:sp z:1];
//[self addChild:sp z:1];
x+= 20;
}
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
此代码引用名为"pause.png"的PNG文件 - 只需拍摄大小约为30x30像素的小图像,并将其放入此项目中即可运行它.
您将看到的是精灵出现在屏幕的一半左右,从中间开始向右侧移动.
如果你注释掉将精灵添加到lightPane的行,并取消注释它下面的行,并重新运行样本,你会看到精灵(正确)出现在它们应该的坐标上.
这显然与我作为精灵的父级使用的CocosNode有关.有谁看到我在做错了什么?
| 归档时间: |
|
| 查看次数: |
3337 次 |
| 最近记录: |