我正在尝试制作单个游戏,当您触摸星形图像时,它将从Star类加载星形精灵。我的星形图像有自己的类(StarImage),当使用level class方法时,它会调用我的Level类StarLauncher方法。问题是,当我触摸星星时,它会调用级别类StarLauncher方法,但它根本不会添加星级精灵。它可以打印堵塞消息..
这是Level类
#import "Level.h"
#import "CCPhysics+ObjectiveChipmunk.h"
#import "Star.h"
#import "StarImage.h"
@implementation Level{
CCPhysicsNode *_physicsNode;
}
-(void)StarLauncher{
CCLOG(@"haaaaaaaaaaa");
Star *_Star2=(Star*)[CCBReader load:@"Star"];
[_Star2 setScale:0.5];
_Star2.position=CGPointMake(160,478);
[_physicsNode addChild:_Star2];
}
-(void) update:(CCTime)delta{
[self StarLauncher]; // when called here it will do add operation
}
@end
这是我的StarImage类
#import "StarImage.h"
#import "Level.h"
@implementation StarImage{
}
- (void)didLoadFromCCB{
self.userInteractionEnabled = TRUE;
}
-(void)touchBegan:(CCTouch *)touch withEvent:(CCTouchEvent *)event{
}
-(void)touchEnded:(CCTouch *)touch withEvent:(CCTouchEvent *)event{
Level *_LevelOlio=[[Level alloc]init];
[_LevelOlio StarLauncher]; // it calls but the methode will only print clog
}
问题是StarLauncher在从StarImage调用时不会执行添加操作,但是当我在Level类中调用它时它确实有效..我在这里缺少什么?当我从其他类调用它时,为什么它不会执行相同的代码?但为什么它打印堵塞?当我调试它时,它显示从StarImage调用时它运行代码但模拟器中没有任何内容
答案 0 :(得分:0)
因为它在新创建的级别上运行。每次触摸在StarImage实例上结束时,您确定要创建新级别吗?