NSObject中的Cocos2d调度方法

时间:2010-09-11 12:28:22

标签: iphone objective-c cocos2d-iphone

再次出现Cocos2D问题。 :-D

我创建了即将到来的游戏的主角作为NSObject的子类。这个类有一个Sprite,Spritesheet和所有东西的属性。但现在我有以下问题。

我想安排一个动画精灵的方法。应该每秒安排一次的行动。但是因为我使用NSObject的子类来保存我的所有数据,所以我不能使用[self schedule:@selector(action:) interval:1.0]。还有另外一种方法吗?我不想使用NSTimer,因为我再也不能让CCDirector打破游戏了。 如果你可以帮助我真的很有帮助。 :-D

Sandro Meier

2 个答案:

答案 0 :(得分:3)

很多方法可以给那只猫带来皮肤,但这里有一些:

  • 子类CCNode而不是NSObject并调用[yourClass schedule:interval:]
  • 公开一个内部调用[self.sprite schedule:interval:]
  • 的简化选择器
  • 外部调用[yourClass.sprite schedule:interval:]
  • 内部呼叫[self.sprite schedule:interval:]

答案 1 :(得分:1)

//SomeObject.h
@interface SomeObject : NSObject 
{
}
-(void) initObject;
@end    

//SomeObject.m
#import "cocos2d.h"
#import "SomeObject.h"
@implementation SomeObject

-(id) init
{
    return [super init];
}

-(void) initObject
{
    [[CCScheduler sharedScheduler] scheduleUpdateForTarget:self priority:0 paused:NO];
}

-(void) update:(ccTime) dt
{
}

-(void) dealloc
{
    [[CCScheduler sharedScheduler] unscheduleUpdateForTarget:self];
    [super dealloc];
}
@end

另请看这个

[[CCScheduler sharedScheduler] scheduleSelector:@selector(ping) forTarget:self interval:2.f paused:NO];

-(void) ping
{
}