1) ImageCache не является стандартным классом, поэтому класс должен быть определен где-то в игровом проекте. Вам не хватает import "ImageCache.h"
(или любого заголовочного файла, в котором определен ImageCache).
2) Сначала берется count
по модулю 4. То есть: разделите count
на 4 и возьмите остальное. Этот остаток используется в качестве индекса для brickTypes. Таким образом, вы всегда получите значение от 0 до 3 (включая). Затем счет увеличивается на 1 (оператор postfix ++ сначала возвращает значение переменной, а затем увеличивает переменную на единицу). Поскольку brickType
имеет тип NSString *brickType[4]
(вы не показали нам объявление), этот код всегда будет возвращать строку @"bricktype1.png"
... @"bricktype4.png"
.
3) Я не понимаю этого вопроса, извините. Пожалуйста, попробуйте объяснить.
4) Сначала запрашиваются позиция и размер кирпича (строка 3). Затем позиция изменяется, оставляя размер неизменным (строка 4). Наконец, измененная позиция и размер присваиваются кирпичу. По сути, это просто перемещает кирпич на новую позицию. Это должно быть сделано так, потому что frame
является свойством типа CGRect (то есть: это метод с именем setFrame:(CGRect)rect
, но компилятор предоставляет более удобный способ доступа к нему), который является структурой, содержащей другие структуры, поэтому просто сделай brick[x][y].frame.origin.x = x * 64
.
5) Он назначает новую позицию кирпичу (точнее, структуре, запрашиваемой из кирпича). Метод CGPointMake(x,y)
возвращает структуру типа CGPoint
. Результат присваивается члену frame
origin
. Можно также написать:
newFrame.origin.x = x * 64;
newFrame.origin.y = (y * 40) + 50;
(здесь вы можете напрямую выполнять присваивания, потому что newFrame - это структура в вашем стеке, а не метод, подобный brick[x][y].frame
)