我需要用各种参数在 cosos2D 中安排一个事件,我尝试在网上搜索但无法从中得到任何解决方案。我可以用
[self schedule:@selector(move:) interval:0.3];
但是我应该如何将参数传递给它:
[self schedule:@selector(move:withPoint:) interval:0.3];
访问此功能。
-(void)move:(id)object withPoint:(CGPoint)point{ }
最佳答案
您应该在实例变量中使用某种封装(数组/字典、结构等)来实现此目的。例如:
placeholderDict = [NSDictionary dictionaryWithObjectsAndKeys:
[NSValue valueWithCGPoint:point], @"point",
theObject, @"object",
nil];
[self schedule:@selector(moveWithPointWrapper) interval:0.3];
- (void)moveWithPointWrapper
{
CGPoint pt = [(NSValue *)[placeholderDict objectForKey:@"point"] CGPointValue];
id obj = [placeholderDict objectForKey:@"object"];
[self move:obj withPoint:pt];
}
希望这对您有所帮助。
编辑:正如@learncocos2d 指出的那样,创建单个实例变量(对象、CGPoint...)也足够了,您甚至不需要字典的开销。
关于iphone - 在 cocos2D 中安排具有多个参数的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11464226/