Код "BackgroundMoving" не работает в iPhone4S - PullRequest
10 голосов
/ 10 марта 2012

Я делаю одну игру, в которой у меня возникают проблемы при тестировании приложения на устройстве (iPhone4), фон которого не работает.Например, когда заканчивается фоновое изображение, появляется BLACKISH BACKGROUND COLOR.Размер моего фонового изображения составляет 460X2880, имя изображения "mars_sample.jpg" (для iPhone4) и код для перемещения фона:

-(void)backgroundmoving:(ccTime)dt 
{     
    static float bk_f=0.0f;

    bk_f -=0.9;
    if (bk_f <= -960*3) {bk_f=0;}
    background.position = ccp( 0,bk_f);    
}  

Когда я загружаю изображение размера "460X2880" в качестве фонового изображения, оно не отображается.t загружает в фоновом режиме И если он имеет размер "460X1192", он загружает изображение в фоновом режиме, но показывает ЧЕРНЫЙ ФОН Цвет в верхней части экрана.

Ниже одного КОДА для настройки фонового изображения:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    background = [CCSprite spriteWithFile:@"staripad.png"];
    background.anchorPoint= ccp(0,0);
    [self addChild:background z:0];
} else {
    background = [CCSprite spriteWithFile:@"mars_sample.jpg"];
    background.anchorPoint= ccp(0,0);
    [self addChild:background z:0];
    [self schedule:@selector(backgroundmoving:) interval:1/30];
}

Пожалуйста, дайте мне несколько советов, как это будет работать.Спасибо ВСЕМ

С уважением,

Tauseef Khan

Ответы [ 2 ]

2 голосов
/ 10 марта 2012

Проверьте background.position = ccp( 0, bk_f ) в backgroundmoving Вы устанавливаете значение Y координаты в фиксированное значение, bk_f. Я предполагаю, что это значение X, которое вы хотите изменить, чтобы прокрутить фоновое изображение, background.position = ccp( bk_f, 0 ).

Параметр от dt до backgroundmoving, который, как я полагаю, должен предоставлять движущееся фоновое изображение, не используется.

Убедитесь, что фоновое представление расширено, чтобы соответствовать его супер-виду, используя свойства авторазмера.

Изучите источник в свойстве фрейма фонового представления - убедитесь, что оно находится в верхней части экрана.

Я бы добавил простой UIView позади вашего фона UIImageView и установил бы его цвет на зеленый или другой резкий цвет. Таким образом, вы можете визуально подтвердить недвижимость, охватываемую видами.

1 голос
/ 10 апреля 2012
//in .h file int bk_f=240;

-(void)backgroundmoving:(ccTime)dt 
{     

    bk_f=bk_f-5;    
    if(bk_f<=0)
    {
        background.position = ccp( 240,160); 
        bk_f=240;
    }
    else
    {
        background.position = ccp( bk_f,160); 
    }


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