Я пытаюсь написать класс Objective C, который рисует многоугольник OpenGL.Мне удалось сделать это с помощью NSMutableArray для хранения моих координат вершин.Однако это кажется немного неэффективным, потому что каждый раз, когда объект рисуется, необходимо циклически перебирать массив, чтобы преобразовать NSMutableArray в массив ccVertex2F [].
То, что я хочу сделать, это иметь массив ccVertex2F в качестве переменной экземпляра.Затем при инициализации установите размер равным количеству точек.Это, однако, выдает ошибку, потому что размер моего массива всегда равен нулю.
У меня есть опыт программирования на Java, но я совершенно новичок в C и управлении памятью.Пока это то, что у меня есть:
@interface PolygonNode : CCNode {
ccVertex2F * _glPoints ;
}
@property (nonatomic, readwrite) ccVertex2F * glPoints ;
@end
Насколько я понимаю, я создаю переменную экземпляра, которая является указателем на ccVertex2F.
В моем методе init у меня естьследующее:
ccVertex2F sizedGlPoints [numberOfPoints * sizeof(ccVertex2F)];
_glPoints = &sizedGlPoints;
Цель этого состояла в том, чтобы заставить переменную экземпляра указывать на мой новый массив правильного размера.Однако, когда я печатаю размеры после этого кода, размер _glPoints не меняется.
Суть того, что я хочу сделать, - это иметь возможность выбирать размер моего массива при инициализации класса, чтобы я могЯ не трачу память.