Замена изображения в iphone - PullRequest
0 голосов
/ 07 июля 2011

Я добавил некоторый спрайт, используя следующий код, а затем, проверив прямоугольное пересечение, я хочу заменить эти спрайты другим. Можете ли вы помочь мне, предоставив код для замены этих случайных изображений. Проблема в том, что изображениебыть заменен также взят случайным образом .........

             yp = 40;
    //CCSprite *spr;

    movableSprites = [[NSMutableArray alloc] init];

    for(int m=0; m<4; m++)
    {               
        do
        {
            i = 'a';
            //NSLog(@"valueeeeeeeee %d",i);
            next = arc4random()%maxalphabets;
            //NSLog(@"valueeeeeeeeenexttttt %d",next);
            i+=next;
            //NSLog(@"valueeeeeeeee %d",i);

            spr = (CCSprite*)[self getChildByTag:i];//checks if found alreadyyyyyy
            NSLog(@"Strrrrrrrr is:%@",spr);
        }while(spr);

        spNameStr = [NSString stringWithFormat:@"%c3.png",i];
        NSLog(@"tagggg %d",i);
        NSLog(@"spNameStr is:%@",spNameStr);
        spr = [CCSprite spriteWithFile:spNameStr ];
        spr.tag = i;
        //NSLog(@"tagiiiiii %d",i);
        spr.position = ccp(60,yp);  
        [self addChild:spr z:2];
        [movableSprites addObject:spr];
        yp+=spr.contentSize.height+35;
    }

    yp = 40;

    NSMutableArray *answerimagesCopy = [NSMutableArray arrayWithArray:movableSprites];
    NSLog(@"answer image copy elements areeeee %@",answerimagesCopy);
    for(k = 0; k < movableSprites.count; ++k) 
    {
        NSLog(@"inside forrrr");
        int j=arc4random()%([answerimagesCopy count]);
        NSLog(@"valueee of jjjjjjjj %d",j);
        CCSprite *ansimage = [answerimagesCopy objectAtIndex:j];
        //NSLog(@"................ %@",ansimage);
        p=ansimage.tag;
        NSLog(@"tagg..... %d",p);
        [answerimagesCopy removeObjectAtIndex:j];
        //NSLog(@"tagg..... %d",j);


        spNameStr = [NSString stringWithFormat:@"%c4.png",p];   
        NSLog(@"spNameStr is:%@",spNameStr);
        //NSLog(@"tagggg %d",j);
        spr = [CCSprite spriteWithFile:spNameStr ];
        spr.tag = p+100;
        spr.position = ccp(260,yp);
        [self addChild:spr z:1];
        yp+=spr.contentSize.height+35;
    }

1 Ответ

0 голосов
/ 07 июля 2011

Я сделал это с помощью спрайт-листа. если вы можете создать лист спрайта, а затем назначить этот лист спрайта объекту CCSpriteBatchNode, например

$ CCSpriteBatchNod * m_meteoritesSprites = [CCSpriteBatchNode batchNodeWithFile: @ "Meteo.pvr.ccz"];

и затем загрузить plist

$ [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile: @ "Meteo.plist"];

, а затем используйте рамки спрайта для назначения изображений вашему спрайту, например

$ m_meteoritesSprites = [CCSpriteBatchNode batchNodeWithFile: @ "Meteo.pvr.ccz"];

Я использовал TexrturePacker для создания спрайтов

надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...