我是COCOS2D的新手,我现在正试图将CGPoint作为参数传递给线程函数。我不知道如何将它包裹在一个物体中。有人可以帮忙吗?提前谢谢〜
答案 0 :(得分:7)
您可以使用CGPoint创建NSValue并将其作为withObject参数传递:
NSValue *value = [NSValue valueWithCGPoint:CGPointMake(1.2, 22.6)];
[self performSelectorInBackground:@selector(someSelector:) withObject:value];
然后在你的选择器中,你可以像这样访问NSValue中的CGPoint:
CGPoint point = [value CGPointValue];
答案 1 :(得分:-1)
让我们说,你有
CGPoint p =ccp(10,10);
您可以使用指针和malloc将其包装到对象中,如下所示: -
CGPoint *wrappedP = malloc(sizeof(CGPoint));
wrappedP->x = p.x;
wrappedP->y = p.y;
请务必致电
free(wrappedP);
完成wrappedP后,可以释放为wrappedP分配的内存。
答案 2 :(得分:-1)
试试这个:
class.h:
-(void) method:(CGPoint )point;
class.m:
-(void) method:(CGPoint )point
{
NSLog(@"X:%f Y:%f",point.x,point.y);
}
// method call
[self method:CGPointMake(100.0f, 100.0f)];