0

現在、私はすでに自分のゲーム「Laser Defender」を作成し、そのアプリ ストアを公開していますが、ゲーム プレイのハイ スコアをリストに保存する方法がわかりません。撃破された敵艦艇の数をカウントするラベルがありますが、これらの最高スコアをリストに保存するにはどうすればよいですか? enesShot ラベルを更新するコードは次のとおりです。

  • (無効)更新:(ccTime)dt {

    NSMutableArray *projectilesToDelete = [[NSMutableArray alloc] init]; for (CCSprite *projectile in _projectiles) { CGRect projectileRect = CGRectMake( projectile.position.x - (projectile.contentSize.width/2), projectile.position.y - (projectile.contentSize.height/2), projectile.contentSize.幅、projectile.contentSize.height);

    NSMutableArray *targetsToDelete = [[NSMutableArray alloc] init];
    for (CCSprite *target in _targets) {
        CGRect targetRect = CGRectMake(
                                       target.position.x - (target.contentSize.width/2),
                                       target.position.y - (target.contentSize.height/2),
                                       target.contentSize.width,
                                       target.contentSize.height);
    
        if (CGRectIntersectsRect(projectileRect, targetRect)) {
            [targetsToDelete addObject:target];
        }
    }
    
    for (CCSprite *target in targetsToDelete) {
        [_targets removeObject:target];
        [self removeChild:target cleanup:YES];
        _enemiesShot++;
        [_enemiesShotLabel setString:[NSString stringWithFormat:@"%d",_enemiesShot]];
    
    
    
    }
    
    if (targetsToDelete.count > 0) {
        [projectilesToDelete addObject:projectile];
    }
    [targetsToDelete release];
    

    }

    for (CCSprite *projectile in projectilesToDelete) { [_projectiles removeObject:projectile]; [self removeChild:発射体のクリーンアップ:YES]; } [projectilesToDelete リリース];

    }

4

1 に答える 1

0

これを試して :

NSUserDefaults

保存

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];

// saving an NSInteger
[prefs setInteger:42 forKey:@"integerKey"];

// saving a Double
[prefs setDouble:3.1415 forKey:@"doubleKey"];

// saving a Float
[prefs setFloat:1.2345678 forKey:@"floatKey"];

// This is suggested to synch prefs,
[prefs synchronize];

取得中

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];


// getting an NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];

// getting an Float
float myFloat = [prefs floatForKey:@"floatKey"];

アプリの実行中は、すべてのデータを NSArray/MutableArray に保持し、アプリがバックグラウンドに移行しようとしているときは、「applicationDidEnterBackground」内の「保存」部分を保持します。

アプリが再開されたら、「UserDefaults」からすべてのデータを取得します (上記のコードを取得します)。そのコードを「ApplicationDidEnterForeground」内に配置します。アプリケーションが新たに起動されたら、「ViewDidLoad」を使用してコードを取得します。

于 2013-03-28T03:53:05.370 に答える