Что делает MAX в Objec-C / cocos2d? - PullRequest
2 голосов
/ 29 марта 2012

Пример:

CGSize winSize = [[CCDirector sharedDirector] winSize];
int x = MAX(position.x, winSize.width /2);
    int y = MAX(position.y, winSize.height /2);
    x = MIN(x, (_tileMap.mapSize.width * _tileMap.tileSize.width)
            - winSize.width /2);
    y = MIN(y, (_tileMap.mapSize.height *_tileMap.tileSize.height)
            -winSize.height/2);
    CGPoint actualPosition = ccp(x, y);

    CGPoint centerOfView = ccp(winSize.width/2, winSize.height/2);
    self.position = centerOfView;

Обратите внимание на MAX, который определен в NSObject. Я все еще не знаю, что он делает. Я попытался найти это в текстовой документации, но не получил никакого соответствующего результата.

Точно так же, ccp просто берет две координаты и сохраняет их в одну точку?

Е.Г.

CGPoint centerOfView = ccp(winSize.width/2, winSize.height/2);

Спасибо!

Ответы [ 2 ]

7 голосов
/ 30 марта 2012

MAX просто возвращает значение MAX для элементов в скобках.Например, MAX (5,3) вернет 5.

Если x = 1 и y = 10, то MAX (y, x) вернет y.оберните вокруг CGPointMake, и он просто создает CGPoint, который состоит из двух значений, x и y, для создания 2D-координаты.Посмотрите на CGPointMake, поскольку это именно то, что ccp.

1 голос
/ 29 марта 2012

В Xcode удерживайте Command и щелкните по функции для ее определения.

#define MAX(A,B)({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })

ccp определен как

#define ccp(__X__,__Y__) CGPointMake(__X__,__Y__)

Чтобы увидеть файл, в котором определена команда hold, и нажмитефункция.Xcode будет зацикливать символ.

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