Iphone 在cocos2D中安排具有多个参数的事件
我需要在cosos2D中安排一个带有各种参数的事件,我曾尝试在网上搜索,但未能从中获得任何解决方案。我可以用 [自调度:@选择器(移动:)间隔:0.3] 但是我应该如何向它传递参数,比如: 以访问此功能Iphone 在cocos2D中安排具有多个参数的事件,iphone,ios,xcode,cocos2d-iphone,Iphone,Ios,Xcode,Cocos2d Iphone,我需要在cosos2D中安排一个带有各种参数的事件,我曾尝试在网上搜索,但未能从中获得任何解决方案。我可以用 [自调度:@选择器(移动:)间隔:0.3] 但是我应该如何向它传递参数,比如: 以访问此功能 您应该在实例变量中使用某种封装(数组/字典、结构等)来实现这一点。例如: placeholderDict = [NSDictionary dictionaryWithObjectsAndKeys: [NSValue valueWithCGPoint:point], @"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];
}
希望这有帮助
编辑:正如@learnocos2d所指出的,创建单个实例变量(对象、CGPoint…)就足够了,而且您甚至不需要字典的开销。您应该在实例变量中使用某种封装(数组/字典、结构等)来实现这一点。例如:
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];
}
希望这有帮助
编辑:正如@LearnCos2D所指出的,创建单个实例变量(对象、CGPoint…)就足够了,而且您甚至不需要字典的开销。您想要做的是不可能的 由于要调度的方法在同一个类中,因此可以只使用实例变量。您可以像这样安排选择器,并且该方法需要有此签名(仅接受ccTime参数): 要访问此方法中所需的变量,请将它们添加为实例变量:
@interface MyClass : CCNode
{
id moveObject;
CGPoint movePoint;
}
@end
然后,您可以在update方法中使用这些变量,和/或在其他方法中修改它们
-(void)move:(ccTime)delta
{
// read or modify moveObject and movePoint as needed
}
你想做的是不可能的 由于要调度的方法在同一个类中,因此可以只使用实例变量。您可以像这样安排选择器,并且该方法需要有此签名(仅接受ccTime参数): 要访问此方法中所需的变量,请将它们添加为实例变量:
@interface MyClass : CCNode
{
id moveObject;
CGPoint movePoint;
}
@end
然后,您可以在update方法中使用这些变量,和/或在其他方法中修改它们
-(void)move:(ccTime)delta
{
// read or modify moveObject and movePoint as needed
}
您也可以只创建一个CGPoint实例变量,也可以只创建一个CGPoint实例变量。