2012-02-05 26 views
0

如何繪製CGRect數組中的所有矩形?我到目前爲止的代碼是: 在我的init方法:如何讓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];

在我的畫法

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 2012-02-05 01:13:21

+0

我試過了,但我想它對我們來說是繪製方法,因爲當我創建一個新的方法時,它沒有繪製矩形。 – Seany242 2012-02-05 02:52:54

回答

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

我不知道那是什麼,但它沒有奏效。我也使用cocos2d,所以沒有核心圖形的東西,我找不到一個簡單的方法來繪製網格點。 – Seany242 2012-02-05 21:31:18

0

爲什麼不使用NSMutableArray作爲實例變量,以便它可以在draw方法中訪問?