ゲーム開発でポイントになるのがデータのセーブをどうするか。
例えばステージをクリアした時に、その情報が保存されなければクリアしたことにならず次のステージに進めません。
Swiftにはアプリ内にデータを保存するための仕組みUserDefault
があるのでこれを使ってデータを保存してみました。
class SaveData { // key:stage1,2,3 // value:true=クリア済み func save(key:String,value:Bool){ UserDefaults.standard.set(value, forKey: key) } func get(key:String) -> Bool{ return UserDefaults.standard.bool(forKey: key) } }
保存する機能と取得する機能を用意しました。
UserDefaultでは、キーとバリューをセットで保存します。
キーはステージ名、バリューはクリアしたかどうかを表すフラグをセットすることで、そのステージがクリアしたかどうかが分かります。
ステージのボスが死んだ時にステージをクリアの状態にするには以下のようにします。
SaveData().save(key: "stage2", value: true)
ステージのクリア情報を確認するには以下のようにします。
if SaveData().get(key: "stage1"){ //stage1をクリアしていた。 }