Я довольно новичок в Objective-C и даже C в целом, поэтому, пожалуйста, потерпите меня. Моя главная цель - отобразить мой NSMutableArray для CGPoints (через NSValue) с glDrawArrays (GL_LINE_STRIP, 0, points);
Я заметил, что cocos2d требует указатель массива (?) *poli
примерно так:
void ccDrawPoly( CGPoint *poli, int points, BOOL closePolygon ) { ... }
Итак, я попытался преобразовать свой NSMutableArray в массив C, и я могу просто получить доступ к / отладить CGPoints:
NSUInteger count = [points count];
id *buffer = malloc(sizeof(NSValue) * count);
[points getObjects: buffer];
for(uint i = 0; i < count; i++) {
NSValue *val = buffer[i];
CGPoint p = [val CGPointValue];
NSLog(@"points x %i: %f", i, p.x);
/* shows up in the console as:
-----------points at 0: 42.000000
-----------points at 1: 44.000000
... etc
*/
}
free(buffer);
Но я думаю, что я застрял в том, чтобы привести их к типу данных, который ccDrawPoly
или glDrawArrays(GL_LINE_STRIP, 0, points)
примет. Что, очевидно, является структурой или чем-то, но я не уверен, как получить их в структуре.
Любая помощь будет принята с благодарностью! Спасибо!