Мне снова нужна ваша помощь, я благодарю вас, как и каждый раз, когда вы мне помогли.
Я занимаюсь разработкой игры для iPhone с использованием фреймворка 'COCOS2D' и 'OBJECTIVE-C'.В моей игре есть десять (10) уровней.Метка LEVEL создается и определяется в классе (i: e HudLayer.h, HudLayer.m), и я удаляю LABEL в другом классе (i: e GameScene.m). В игре я использую ccLabelBMFont для создания метки LEVEL..
Теперь проблема в том, что когда я удаляю метку LEVEL (т.е. уровень 1) и размещаю новую метку уровня (то есть уровень 2), код не удаляет «уровень 1» и поместив "Уровень 2" на предыдущую метку УРОВНЯ (i: e Уровень 1).
Ниже приведен мой Код для той же проблемы, пожалуйста, скажите, куда я иду Неправильно:
**Code of HudLayer.h**
#import "Foundation/Foundation.h"
#import "cocos2d.h"
#import "GameScene.h"
@interface HudLayer : CCLayer {
CCLabelBMFont * level;
}
@property (nonatomic,retain) CCLabelBMFont * level;
@end
Теперь код для «HudLayer.m», где я синтезирую и использую «уровень»:
#import "HudLayer.h"
#import "GameScene.h"
@implementation HudLayer
@synthesize level;
level = [CCLabelTTF labelWithString:[NSString stringWithFormat:@"Level 1",level] fontName:@"Marker Felt" fontSize:12];
[level setAnchorPoint:ccp(1,0.5)];
[level setPosition:ccp(250,470)];
[level setColor:ccORANGE];
[self addChild:level];
}
return self;
}
- (void) dealloc {
[super dealloc];
[lives release];
}
@end
*HERE IS MY CODE FOR "GameScene.h"*
#import "cocos2d.h"
#import "HudLayer.h"
typedef enum {
Level1,
Level2,
Level3,
Level4,
Level5,
Level6,
Level7,
Level8,
Level9,
Level10,
} LevelType;
@interface GameLayer : CCLayer
{
int level;
BOOL ifLevel2Started;
BOOL ifLevel3Started;
BOOL ifLevel4Started;
BOOL ifLevel5Started;
BOOL ifLevel6Started;
BOOL ifLevel7Started;
BOOL ifLevel8Started;
BOOL ifLevel9Started;
BOOL ifLevel10Started;
}
@property (assign,readwrite) int level;
@end
И, наконец, я хочуУДАЛИТЬ УРОВЕНЬ ярлык 1 Из класса HudLayer и нарисуйте новый ярлык с именем «Уровень 2» на основе баллов:
#import "GameScene.h"
#import "HudLayer.h"
@implementation GameLayer
@synthesize level;
@synthesize levelType = _levelType;
if (self.levelType == Level1) {
[self LevelFeatures];
ifLevel2Started = FALSE;
}
if (self.levelType == Level2) {
[self LevelFeatures1];
ifLevel3Started = FALSE;
}
if (self.levelType == Level3) {
[self LevelFeatures2];
ifLevel4Started = FALSE;
}
-(void)LevelFeatures
{
HudLayer * hl = (HudLayer *)[self getChildByTag:KHudLayer]; // * HERE I AM DOING MY MAIN STEP, HERE AM CREATING OBJECT OF **"HudLayer" class** *
hl.level = [CCLabelTTF labelWithString:[NSString stringWithFormat:@"Level 2"] fontName:@"Marker Felt" fontSize:12];
//**HERE AM SETTING NEW Label FOR LEVEL.**
}
Я НАЗЫВАЮ ЗАДАЧУ ТОЛЬКО НА ВЫШЕ ЛИНИИКОДЕКСА, КОТОРЫЙ Я НАПИСАЛ ТАК БОЛЬШОЙ ЗАПРОС, ЧТОБЫ ВЫ ТОЧНО ПОНИМАЛИ МОЮ ПРОБЛЕМУ.
ЧТО Я ДОЛЖЕН ЗАПИСАТЬITE / CODE НАД ЗДЕСЬ ТАК, ЧТО ПРЕДЫДУЩАЯ ЭТИКЕТКА ПОЛНОСТЬЮ УДАЛЯЕТСЯ, И НОВЫЙ ЕДИНСТВЕННЫЙ МЕСТО.(т.е. перегрузка метки не происходит).