我有3个类,即GameScene,HomeScene和RecordsScene,我试图从GameScene传递一个整数值到RecordScene。我的问题是,一旦游戏完成,它会回家,然后你必须点击记录来查看记录。基本上,三个班的顺序是这样的:在cocos2d的3个类之间传递int
GameScene - > HomeScene - > RecordScene
我一直试图做的是从GameScene整数值传递给HomeScene然后从HomeScene,我将它传递给RecordScene但是当我到达那里时,整数的值仍为0。这里是我当前的代码:
//GameScene
-(void)goHome:(ccTime)dt
{
HomeScene *home = [HomeScene node];
//myInt is an integer I declared on the HomeScene class, the value changes depending on the stage
home.layer.myInt = 1;
[[CCDirector sharedDirector]replaceScene:home];}
//HomeScene
-(void)viewRecord:(id)sender
{
//View record
RecordScene *record = [RecordScene node];
//lastStage is the integer from RecordScene I'm passing the value of myInt into
record.layer.lastStage = myInt;
[[CCDirector sharedDirector]replaceScene:record];}
我实现类,像这样:
@implementation HomeScene
@synthesize layer;
-(id)init
{
if((self =[super init]))
{
self.layer = [HomeSceneLayer node];
[self addChild:layer];
}
return self;
}
@end
@implementation HomeSceneLayer
@synthesize myInt;
//methods
@end
然后我的头看起来像这样:
@interface HomeScene : CCLayer
{
int myInt;}
@property(nonatomic)int myInt;
@end
@interface HomeScene : CCScene
{
HomeSceneLayer *layer;
}
@property (nonatomic, retain)HomeSceneLayer *layer;
@end
为什么重新回到0,我怎么从GameScene到RecordScene传递整数值?
如何声明'HomeScene'上的'layer'属性和'layer'上的'myInt'?你用ARC吗?如果你没有确定在获取int值之前没有发布实例吗? – gerrytan
基本上,我做的是实现HomeScene和合成图层来添加图层。然后我实现了HomeSceneLayer并在那里合成了myInt。我会更新我的帖子以包含该帖子。 – user1597438