[self classmethod]
在超级类中,然后使用它子类我正在制作一些基于 cocos2d 的 iPhone 游戏。在我之前见过的许多游戏中,当用户的角色死亡或消失时,场景会重新开始。它可以简单地完成,但如果在每个子类中实现,则需要一些处理。
[[CCDirector sharedDirector] replacescene:[childclass scene]];
但是如果我可以在父类中实现,它可以一次完成。我猜。所以我[self scene]
在父类中尝试过,但它不起作用。
我怎样才能在父类中做到这一点?
添加在
@interface Parent : CCLayer {}
+(CCScene*)场景;
-(无效)死亡;
@结尾
@实现父
...
+(CCScene*)场景{
CCScene *scene = [CCScene node];
// 'layer' is an autorelease object.
Parent *layer = [Parent node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
}
...
-(无效)死{
// 在角色死亡后调用
[[CCDirector sharedDirector] replacescene:[self scene]]; //这会报错“Parent may not respond to 'scene'”
}
@interface Child1 : 父 {}
+(CCScene*)场景;
@结尾
@实现父
...
+(CCScene*)场景{
CCScene *scene = [CCScene node];
// 'layer' is an autorelease object.
Child *layer = [Child node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
}
...
@结尾
我认为 Child1 不需要死方法实现,因为它是 Parent 的子类,但它不起作用。还有 Child2、Child3 ……也是。
当我将 dead 方法移动到 Child1 并修改它的 self -> Child1 时,它会起作用
请让我知道,如果你不能理解我的问题。谢谢你的回复。