1
NSMutableArray *sumPositionArray;
sumPositionArray = [[NSMutableArray alloc] init];  
for (int i = 0; i < 10; i++) 
{
      b2Body *currentBody = (b2Body*)[[bodies objectAtIndex:i] pointerValue];
      b2Vec2 innerPosition=innerCircleBody->GetPosition(); 
      float theta = deltaAngle*i; 
      float x = radius*cosf(theta);
      float y = radius*sinf(theta);
      b2Vec2 circlePosition = b2Vec2(x/PTM_RATIO, y/PTM_RATIO);
      b2Vec2 sumPosition=innerPosition+circlePosition;
      b2Vec2 impulse = b2Vec2(0,0);
      b2Vec2 sumposition=innerPosition+circlePosition;
      [sumPositionArray addObject:[NSValue valueWithPointer:sumPosition]];
}

我收到一条错误消息: 没有从 b2vec2 到 'const void *' 的可行转换

4

2 回答 2

2

然后将 B2Vec2 坐标转换为 CGPoint,您可以通过使用 NSValue 将它们插入到数组中。

NSArray *points = [NSArray arrayWithObjects:
                     [NSValue valueWithCGPoint:CGPointMake(5.5, 6.6)],
                     [NSValue valueWithCGPoint:CGPointMake(7.7, 8.8)],
                     nil];
于 2012-11-07T08:54:51.493 回答
0

它正在工作。谢谢@Shailesh

for (int i = 0; i < 10; i++) 
{
 CGPoint currentBo =[[sumPositionArray objectAtIndex:i] CGPointValue];  // get CGPoint into Array

}
于 2012-11-07T09:39:23.773 回答