Ошибка XCode продолжает говорить, что размер необъявлен, как я могу это исправить? - PullRequest
0 голосов
/ 23 августа 2011

Я пишу приведенный ниже код в xcode, и он продолжает увеличиваться в размерах, необъявленном: сначала используйте эту функцию, как мне исправить это, чтобы я мог запустить код?

// on "init" you need to initialize your instance
-(id) init
{ CCSprite *spaceCargoShip = [CCSprite
                             spriteWithFile:@"spaceCargoShip.png"];
[spaceCargoShip     setPosition:ccp(size.width/2, size.height/2)];
[self addChild:spaceCargoShip];

Ответы [ 3 ]

2 голосов
/ 23 августа 2011

Переменная size не объявлена ​​в этой функции. Вы должны получить его откуда-то еще - возможно, self.size, но, не видя остальной код, я не знаю, откуда он должен исходить.

0 голосов
/ 16 марта 2012

У меня была такая же проблема.

Код должен быть помещен в функцию init и внутри оператора if.

- (id)init {
   if (self = [super init]) {
    //Code for the spaceCargoShip
     ...
    // ask director the the window size
    CGSize size = [[CCDirector sharedDirector] winSize]; //<-- This is the "size" variable that the code is looking for.
     ...
    //Enter the code for the spaceCargoShip in here.
    CCSprite *spaceCargoShip = [CCSprite spriteWithFile:@"SpaceCargoShip.png"];
    [spaceCargoShip setPosition:ccp(size.width/2, size.height/2)];
    [self addChild:spaceCargoShip];

   }
   return self;
}

Причина, по которой она не работает, заключается в том, что переменная выходит из области видимости, если вы не поместите ее в if statement.

0 голосов
/ 23 августа 2011

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

Вместо

[spaceCargoShip setPosition:ccp(size.width/2, size.height/2)];

использование

[spaceCargoShip setPosition:ccp(spaceCargoShip.contentSize.width/2,
                                spaceCargoShip.contentSize.height/2)];

Веселись!

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