プレイヤーが自分のゲームをプレイしているときに得たスコアを保持し、ゲームを閉じて再度開いたときにスコアが保存されるようにしたいと考えています。私が考えることができる唯一の方法は、VB6 で行ったように、テキスト ファイルを使用して行うことです。しかし、それは彼らがテキスト ファイルを編集できるということですか? か否か?私のスコアは、どのクラスからもアクセスできる「ダブル」に保存され、違いがあれば、そのままクラス間で転送されます。
誰かがこれについて最善の方法を提案できることを願っています。
プレイヤーが自分のゲームをプレイしているときに得たスコアを保持し、ゲームを閉じて再度開いたときにスコアが保存されるようにしたいと考えています。私が考えることができる唯一の方法は、VB6 で行ったように、テキスト ファイルを使用して行うことです。しかし、それは彼らがテキスト ファイルを編集できるということですか? か否か?私のスコアは、どのクラスからもアクセスできる「ダブル」に保存され、違いがあれば、そのままクラス間で転送されます。
誰かがこれについて最善の方法を提案できることを願っています。
任意のアプリ。GUIを備えたものは、Java Web Startを使用して起動し、を使用できますPersistenceService
。永続サービスのデータには、エンドユーザーが簡単にアクセスすることはできません。これが小さなデモです。永続化サービスの。
データの保存方法については、ユーザーによる変更を防ぐことが絶対に必要でない場合は、Properties
オブジェクトまたはXML/POJOを使用します。
それが非常に重要である場合(たとえば、10,000ドルの賞金を競うゲーマー)、値を暗号化してから、暗号化された(など)リモートサーバーを使用します。
スコアを秘密にして編集できないようにすることが非常に重要な場合は、すべてのプレイヤーのスコアを自分だけが制御する安全なサーバーに保存するか、それがプロジェクトの範囲外である場合は、暗号化方法を使用して保存することをお勧めします。スコアをテキスト ファイルではなくバイナリ データとして保存します (つまり、スコア自体ではなく、ゲーム状態オブジェクトを保存します)。
何らかの方法でファイルを暗号化できるため、簡単に編集することはできません (編集しようとするとスコアが壊れてしまう可能性があります) 。AES 文字列暗号化の簡単な例を次に示します。
ファイルをローカル マシンに保存すると、明らかに、そのファイルに対する読み取り/書き込み権限を持つすべてのユーザーがファイルを変更できます。
これらの方法のいずれかに従うことをお勧めします
何を試しましたか?私にとってはある種の宿題のようです。
Java でファイルを読み書きできます。オブジェクトのシリアル化を行ったり、組み込みデータベースを使用したりすることもできます。
更新: サーバーのデータベース内にすべての情報を保存することをお勧めします。これを行うには多くの方法があります。具体的な実装は、バックエンドによって異なります。