Как заставить cocos2d нарисовать все прямоугольники в массиве - PullRequest
0 голосов
/ 05 февраля 2012

Как я могу нарисовать все прямоугольники в массиве CGRect? Код, который у меня пока есть: в моем методе init:

rec1 = CGRectMake(50, 400, 30, 30);
CGRect startingRect = rec1;
int count = 48;
CGRect rectArray[count];
rectArray[0] = startingRect;
CGRect oneRect = rectArray[0];
int i;
for (i = 1; i < count; i++) {
oneRect.origin.x += 40;
if (oneRect.origin.x+oneRect.size.width > size.width) {
oneRect.origin.x = startingRect.origin.x;
oneRect.origin.y -= 40;
}
rectArray[i] = oneRect;
}
[self draw];

в моем методе рисования:

glColor4f(1.0, 0, 0, 1.0);
glLineWidth(1.0f);
[self drawRectange:rec1];

и в моем методе drawRectangle:

glColor4f(1.0, 0.0, 0.0, 1.0);
CGPoint vertices[4] = {
ccp(rect.origin.x, rect.origin.y),
ccp(rect.origin.x+rect.size.width, rect.origin.y),
ccp(rect.origin.x+rect.size.width, rect.origin.y+rect.size.height),
ccp(rect.origin.x, rect.origin.y+rect.size.height)
};
ccDrawPoly(vertices, 4, YES);
glVertexPointer(2, GL_FLOAT, 0, vertices);
CC_ENABLE_DEFAULT_GL_STATES();

Проблема в том, что, поскольку метод draw переопределяет оригинал (по крайней мере, это то, что я думаю), я не могу изменить его так, чтобы он принимал параметр CGRect, чтобы он мог отправлять сообщение в метод drawRentangle для каждого прямоугольника. Может кто-нибудь, пожалуйста, помогите мне? Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

Почему бы не использовать NSMutableArray в качестве переменной экземпляра, чтобы к ней можно было получить доступ в методе рисования?

0 голосов
/ 05 февраля 2012
CGRect rectArray[count];
NSUInteger index = count;
while (index--)
 UIRectFrame(rectArray[index]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...