我有一個遊戲,用戶在開始時收集不同類型的對象和一個值爲0的標籤。每次用戶收集一個對象(通過觸摸它),它應該使得分數=當前分數+1;我嘗試了下面的代碼,但是當我點擊對象時它崩潰了。Cocos2d項目中的得分系統
這是在屏幕上放一個0我的分數標籤代碼:
score = 0;
scoreLabel1 = [CCLabelTTF labelWithString:@"0" fontName:@"Times New Roman" fontSize:33];
scoreLabel1.position = ccp(240, 160);
[self addChild:scoreLabel1 z:1];
這是無效的功能,我打電話我每次碰的對象:
- (void) addScore
{
score = score + 1;
[scoreLabel1 setString:[NSString stringWithFormat:@"%@", score]];
}
這是我放置觸摸物體的代碼的實際部分:
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self ccTouchesMoved:touches withEvent:event];
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
for (Apple in self.appleArray)
{
if (CGRectContainsPoint(Apple.boundingBox, location))
{
[self addScore];
Apple.visible = NO;
}
}
其他所有工作e除了分數。還有一種方法可以讓蘋果消失,而不是通過apple.visible = false使其不可見?因爲這種方式蘋果仍然存在但不可見,我想擺脫它。
希望有人能幫助!
如果您有任何問題,請告訴我。
謝謝。
這是我畫的蘋果:
-(id) init
{
// always call "super" init
// Apple recommends to re-assign "self" with the "super's" return value
if((self=[super init])) {
isTouchEnabled_ = YES;
self.appleArray = [CCArray arrayWithCapacity:20];
for (int i = 0; i < 5; i++) {
Apple = [CCSprite spriteWithFile:@"Apple4.png"];
[self addChild:Apple];
[appleArray addObject:Apple];
}
[Apple removeFromParentAndCleanup:true];
[self scheduleUpdate];
}
return self;
}
而這正是在屏幕被更新:
-(void) update: (ccTime) dt
{
for (int i = 0; i < 5; i++) {
Apple = ((CCSprite *)[appleArray objectAtIndex:i]);
if (Apple.position.y > -250) {
Apple.position = ccp(Apple.position.x, Apple.position.y - (Apple.tag*dt));
}
}
}
如果你想刪除而不是使不可見,使用方法'[object removeFromParentAndCleanup:true]'。也爲了將來,請不要在一個問題中提出兩個問題。而是寫下兩個問題。 – dqhendricks 2013-03-13 21:27:44
嗨dghendricks,謝謝你的幫助。我試過[蘋果removeFromParentAndCleanup:真],它似乎沒有工作。蘋果仍然會留在那裏,但看不見,所以當我繼續按下它時,它會繼續爲分數標籤添加一個點。 – 2013-03-14 20:13:03
如果你調用'[apple removeFromParentAndCleanup:true]',那麼蘋果就沒有辦法留在屏幕上了。要麼你看到一個不同的蘋果,你實際上並沒有調用'[apple removeFromParentAndCleanup:true]',或者你正在存儲對蘋果的引用(一個數組?),並觸發基於蘋果的不同對象的點擊不管是否在屏幕上的位置屬性。 – dqhendricks 2013-03-14 20:15:35