2012-02-05 3 views
0

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

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];

в моем методе 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();

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

+0

Вместо того, чтобы переопределять его, нужно ли ему вызвать другой метод, который обращается к вашему массиву или к каждому прямоугольнику? – Moshe

+0

Я пробовал это, но, я думаю, он имеет для нас метод draw, потому что когда я создал новый метод, он не рисовал прямоугольники. – Seany242

ответ

0
CGRect rectArray[count]; 
NSUInteger index = count; 
while (index--) 
UIRectFrame(rectArray[index]); 
+0

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

0

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

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