0

通常、アクション layer.m を実行し、その init メソッドに、次のような視差メソッドへの呼び出しを追加します。

    [self addScrollingBackgroundWithParallax];

そのメソッドは次のとおりです。

-(void)addScrollingBackgroundWithParallax {
CGSize screenSize = [[CCDirector sharedDirector] winSize];
CGSize levelSize = [[GameManager sharedGameManager]
                    getDimensionsOfCurrentScene];

// 1. Create image (sprite node)
CCSprite *BGLayer1 = [CCSprite spriteWithFile:@"chap9_scrolling4.png"];

// 2. Create Parallax Node, Position it 
parallaxNode = [CCParallaxNode node];
[parallaxNode setPosition:ccp(levelSize.width/2.0f,screenSize.height/2.0f)];
float xOffset = 0;
// 3. Add image node to parallax node
[parallaxNode addChild:BGLayer1 z:1 parallaxRatio:ccp(1.0f,1.0f) positionOffset:ccp(0.0f,0.0f)];
xOffset = (levelSize.width/2) * 0.3f;
// 4. Add parallax node to layer
[self addChild:parallaxNode z:1];

}

これはうまくいきます。だから私は何か違うことをしようとしています。ゲーム シーン クラスでは、次のように初期化します。

-(id)init{
self = [super init];
if (self != nil) {
    // The scene will start out by running layer1
    _layer = [PlaneLevel node];
    [self addChild:_layer z:1];

    //Add eye candy
    layer2 = [Scene2EyeCandy node];
    [self addScrollingBackgroundWithParallax];

}
return self;

}

ゲームレイヤーとアイキャンディーレイヤー。シーンに gamelayer を追加しますが、eyecandy レイヤーをシーンに追加する代わりに、これを行う addScrollingBackgroundWithParallax メソッドを呼び出します。

-(void)addScrollingBackgroundWithParallax {
CGSize screenSize = [[CCDirector sharedDirector] winSize];
CGSize levelSize = [[GameManager sharedGameManager] getDimensionsOfCurrentScene];
// 1. Creates the parallax node
CCParallaxNode *parallaxNode = [CCParallaxNode node];
// 2. Positions it
[parallaxNode setPosition:ccp(levelSize.width/2.0f,screenSize.height/2.0f)];

float xOffset = 0;
// 3. Adds the eyecandy layer to the parallax node 
[parallaxNode addChild:layer2 z:40 parallaxRatio:ccp(1.0f,1.0f) positionOffset:ccp(0.0f,0.0f)];

xOffset = (levelSize.width/2) * 0.3f;
// 4. Finally add the parallax node to the scene.
[self addChild:parallaxNode z:1];

}

しかし、ゲームを実行すると、目の保養層がまったく得られません。

4

1 に答える 1

0

もちろん、そうではありません。あなたのコード:

//Add eye candy
layer2 = [Scene2EyeCandy node];
[self addScrollingBackgroundWithParallax];

だからどこにある

[self addChild: layer2];

?

于 2012-12-19T06:01:44.340 に答える