2

こんにちは私はiPhoneゲームを作成しています

私のゲームレイヤーには、2つの同じ背景画像がありますが、それらを次々に配置したいと思います。

ゲーム動物(ペンギンなど)が最初の背景を横切ったら、最初の背景を2番目の背景の後に置き、ゲームが終了するまで継続的な背景にします。

私はすべてを試しました---forループ、whileループなどですが、何も機能しないようです

誰かが私がこれを行う方法についてアイデアを持っていますか?

あなたが私に提供できるどんな助けにも感謝します。

これは私が多くの異なる試みの後にこれまでに持っているすべてです

- (id) init
{
    if((self = [super init]))
    {
        for ( int x = 0; x < 10000000; ++x)
        {
            CCSprite *bg = [CCSprite spriteWithFile:@"level1.png"];
            [bg setPosition:ccp(160,240)];
            ccTexParams params = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
            [bg.texture setTexParameters:&params];
            [self addChild:bg z:0];

            CCSprite *bg2 = [CCSprite spriteWithFile:@"level1.png"];
            [bg2 setPosition:ccp(320,480)];
            ccTexParams param = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
            [bg2.texture setTexParameters:&param];
            [self addChild:bg z:0];
        }
4

1 に答える 1

0

背景が同じで、実際には2つの画像は必要ない場合は、1つの画像のテクスチャの正しい位置を設定するだけで、継続的に移動します。タイマーまたはupdateメソッドでmoveBackgroundを呼び出すと、継続的にスクロールします。

-(void)init
{
    if((self=[super init]))
    {
        background = [CCSprite spriteWithFile:@"background.png"]; 
        ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT};
        [background.texture setTexParameters:&params];
        [self addChild:background z:0];
    }
}

-(void)moveBackground
{
    // Scroll background 5 pixels to the left
    int speed = 5;
    background.textureRect = CGRectMake(background.textureRect.origin.x-speed, 
                                        background.textureRect.origin.y, 
                                        background.textureRect.size.width, 
                                        background.textureRect.size.height);
}
于 2012-08-10T19:51:13.350 に答える