2012-03-10 1 views
11

Я делаю одну игру, в которой я сталкиваюсь с проблемой при тестировании своего приложения на устройстве (iPhone4), фон которого не работает. Например, когда заканчивается фоновое изображение, появляется BLACKISH BACKGROUND COLOR. Мой размер Фоновое изображение 460X2880, имя изображения «mars_sample.jpg» (для iPhone4) и код для фоновой Moving является:Код «BackgroundMoving» не работает в iPhone4S

-(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» размер как фоновое изображение, то оно не загружает в фоновом режиме И, если он похож на размер «460X1192», он загружает изображение в фоновом режиме, но показывает цвет BLACKISH BACKGROUND в верхней части экрана.

Ниже один код для установки фонового изображения:

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 Хан

+0

не экран на iPhone 480px high (без строки состояния) - это то, что BLACKISH BACKGROUND находится в верхней части экрана? Если нет, добавьте скриншот на свой вопрос :) – deanWombourne

+0

Это ссылка для Screen Short, для чего именно я столкнулся с проблемой !!! http://www.mediafire.com/?s9dh63n3pv3znil http://www.mediafire.com/?lfdxxrclo365ozj – NSExpression

ответ

2

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

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

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

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

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

+0

НЕТ, Я НЕ использовал XIB для Компоновки моего фона. См. Код, который я предоставил сверху, где я задал свой вопрос. Это перемещение фона и проблемы, с которыми я столкнулся после некоторой секунды, когда Фон начинает движение. – NSExpression

+0

На самом деле я перемещаю свой фон в режиме PORTRAIT, из-за этого я так кодирую. См. Ссылку на экран, который я предоставил. (mediafire.com/?s9dh63n3pv3znil И mediafire.com/?lfdxxrclo365ozj). Здесь фон перемещается от вершины к нижней. Для этого я дал следующее условие: background.position = ccp (0, bk_f) Если вам нужно больше объяснений об этом, сообщите мне. Спасибо и жду вашего ответа – NSExpression

1
//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); 
    } 


} 
Смежные вопросы