1 つのシーンで 2 つのレイヤーを次のように設定しました。
シーンのヘッダー ファイル:
@interface GameScene1 : CCScene {
GameLayer *gameLayer;
HUDLayer *hudLayer;
}
シーンのメイン ファイル:
-(id)init {
self = [super init];
if (self != nil) {
gameLayer = [GameLayer node];
[self addChild:gameLayer];
hudLayer = [HUDLayer node];
[self addChild:hudLayer];
}
return self;
}
HUD レイヤー ヘッダー:
@interface HUDLayer : CCNode {
CCSprite *background;
CGSize screenSize;
}
-(void)updateMonstersSlayed:(NSString*)value;
HUD レイヤーのメイン:
@implementation HudLayer
-(id)init
{
self = [super init];
if (self)
{
CGSize viewSize = [[CCDirector sharedDirector] viewSize];
monstersSlayed = [CCLabelTTF labelWithString:@"Monsters Killed: 0" fontName:@"Arial" fontSize:15];
monstersSlayed.position = ccp(viewSize.width * 0.85, viewSize.height * 0.1 );
[self addChild:monstersSlayed];
}
return self;
}
-(void)updateMonstersSlayed:(NSString*)value
{
monstersSlayed.string = value;
}
ゲームレイヤーメイン
- (BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair collisionPlayer:(CCNode *)user collisionMonster:(CCNode *)monster
{
if (holdingWeapon)
{
HudLayer *myHud = [[HudLayer alloc] init];
[myHud updateMonstersSlayed:@"Monsters Killed: 1"];
}
}
ゲームレイヤーからテキストを設定して、Hudレイヤーのラベルに表示できる場所に設定しようとするだけです。
Cocos2d 3 でこれを達成するにはどうすればよいですか?