すべての統計を維持する 1 つのシングルトン クラス (共有オブジェクト) があると便利です。
例: MyGame を使用してすべてのゲーム統計を保存するとします。// MyGame.h 内
typedef enum
{
kGameMode_Practice = 1001,
kGameMode_Stress,
kGameMode_TimeBattle,
}GameMode;
@interface MyGame: NSObject
{
GameMode mGameMode;
int mHighScore;
}
@property(nonatomic,assign) GameMode gameMode;
@property(nonatomic,assign) int highScore;
+(MyGame*)sharedGameObject;
// MyGame.mm 内
static MyGame *gGame = nil;
@implementation MyGame
@synthesize gameMode=mGameMode;
@synthesize highScore=mHighScore;
+(MyGame*)sharedGameObject
{
if(!gGame)
{
gGame = [[MyGame alloc] init];
}
return gGame;
}
-(void)saveData //Call this from applicationWillResignActive
{
NSUserDefaults *userDafs = [NSUserDefaults standardUserDefaults];
[userDafs setInteger:self.highScore forKey:@"highScore"];
[userDafs setInteger:self.gameMode forKey:@"gameMode"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
-(void)loadData //call this from UIApplication didFinishLaunchingWithOptions
{
NSUserDefaults *userDafs = [NSUserDefaults standardUserDefaults];
self.highScore = [userDafs integerForKey:@"highScore"]
self.gameMode = (GameMode)[userDafs integerForKey:@"gameMode"]
}
//メニューボタンを選択してゲームモードを設定できます
[MyGame sharedGameObject].gameMode = kGameMode_Practice
//ゲーム内の任意の場所をチェックするには
if([MyGame sharedGameObject].gameMode == kGameMode_Practice)
また、アプリの終了時にこれらの値を保存し、アプリの起動時に同じ値をロードします。
[[MyGame sharedGameObject] saveData];
ゲームモードに基づいて、ゲームプレイを変更できます。ゲームプレイロジックに単一の一般的なクラスを使用し、ゲームモードを確認して微調整を行います.3つのタイプに対して3つの個別のクラスを設計する場合、将来的にすべてのファイルで1つを更新する必要があります..可能な限り一般的なコードを持つことは良いことです. .