GameScene、HomeScene、および RecordsScene という 3 つのクラスがあり、GameScene から RecordScene に整数値を渡そうとしています。私の問題は、ゲームが終了するとホームに戻り、レコードをクリックしてレコードを表示する必要があることです。基本的に、3 つのクラスの順序は次のようになります。
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 に渡すにはどうすればよいですか?