-1

プレーヤーがスコアを破ってロックを解除してほしい 27 のキャラクターがあります。たとえば、スコアが 200 を超える場合、キャラクター #1 のロックを解除します。私はそれをしようとするのに苦労しています。

その番号、ロックを解除するために必要なスコア、およびロックが解除されているかどうかを確認するブール値を含む文字のクラスがあります。でも節約となると、そうはいかない。

メインのゲーム ループは file にありますGameScreenpointsスコアをカウントする価値があります。

GameState新しいキャラクターがアンロックされていないか、ハイスコアを破ってポイントが貯まっていないかを確認したいPlayerDead

SharedPrefs入力した名前と姓を保存する GUI ベースのアクティビティにすべて適用されるため、1 週間以上苦労していますが、適切なチュートリアルが見つかりません。

4

4 に答える 4

0

以下のコードを使用して、SharedPreference からスコアを保存および取得します。

public static void saveScore(Context context, int score){
    SharedPreferences sharedPreferences = context.getSharedPreferences("YOUR_PACKAGE_NAME", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putInt("SCORE", value);
    editor.commit();
}

public static int loadScore(Context context){
    SharedPreferences sharedPreferences = context.getSharedPreferences("YOUR_PACKAGE_NAME", Context.MODE_PRIVATE);
    int score = sharedPreferences.getInt("SCORE", 0);
    return score;
}
于 2013-02-23T19:47:27.100 に答える
0

sharedPrefs が必要な場合は、私がお手伝いします。

サンプルコードをいくつか挙げることができます。

または、コードとエラーを送信することもできます。エラーが発生した場合は更新します。

しかし、sharedPrefs はそのための良いアイデアですか? ユーザーがアプリケーション設定に移動してアプリのデータを消去すると、すべてのデータが失われます。

sqlite データベースを作成し、assets ディレクトリに保存して使用してみませんか?

于 2013-02-23T19:29:52.337 に答える
0

実際には非常に単純です。SharedPreferences を使用してキーと値のペアを保存します。あなたはどちらかを呼び出すことができます

SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(this);

GameScreen から定数を定義します。

public static final String KEY_SCORE = "score";

保存の鍵として使用します。

実際に保存するには、エディターが必要です。

SharedPreferences.Editor mEditor = mPrefs.edit();
//save data now, mPlayerScore is the score you keep track of
//if it's another type call putString(), etc
mEditor.putInt(KEY_SCORE, mPlayerScore);
//if that is the only thing you want for noe
//close and commit
mEditor.commit();

保存されたスコアを取得するには、 onCreate() 中に次のことができます。

public void getUserProgress() {
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
//no need for an editor when retrieving
mPlayerScore = mPrefs.getInt(KEY_SCORE, 0);
//second value passed was the default score 
//if no score was found
}

新しいキャラクターのロックが解除されていることを確認するには、ゲームごとに次のコードを呼び出すことができます。

private void checkForUserUnlocks() {
if (mPlayerScore >= MyUnlockableCharacter.SCORE_NEEDED_TO_UNLOCK)
   MyUnlockableCharacter.isUnlocked = true;
//and same for other unlockabld characters
} 

SharedPreferences にアクセスする方法は他にもあります。詳細が必要な場合はお知らせください。

于 2013-02-23T19:38:37.313 に答える
0

サンプルを読む;

public int Read() {
        SharedPreferences mSharedPrefs = getSharedPreferences("FileName",
                MODE_PRIVATE);
        SharedPreferences.Editor mPrefsEditor = mSharedPrefs.edit();
        int mCounter = mSharedPrefs.getInt("Counter", 0);
        return mCounter;
    }

サンプルを書きます。

public void Write() {
        SharedPreferences mSharedPrefs = getSharedPreferences("FileName",
                MODE_PRIVATE);
        SharedPreferences.Editor mPrefsEditor = mSharedPrefs.edit();
        mPrefsEditor.putInt("Counter", 15);
        mPrefsEditor.commit();
    }
于 2013-02-23T20:02:05.430 に答える