#はじめに
plistは何かの説明は他の方々が書いているのでここでは書かない
何に使えてどう扱うのか書いていく
#使用用途
- セーブデータ
- アイテムやモンスターなどのデータ
主にデータの保存に使う
CSVにするかplistにするかJSONにするかの違い
#使い方-読み込み-
以下のようなplistがあるとする
playerNo | name | coin | last |
---|---|---|---|
1 | 708QBT | 20 | 2017/11/15 |
2 | SIDE | 500 | 2017/10/20 |
3 | RENDER | 10000 | 2017/08/03 |
Sample.cpp
void Sample::loadPlist(){
//plistファイルの読み込み
ValueVector plistData = FileUtils::getInstance()->getValueVectorFromFile("sample.plist");
//plistの行を一行ごとに読み込む
for (auto itr : plistData){
ValueMap dic = itr.asValueMap();
int player = dic.at("playerNo").asInt();
std::string name = dic.at("name").asString();
int coin = dic.at("coin").asInt();
std::string last = dic.at("last").asString();
}
}
#おまけ
Sample.cpp
void Sample::loadPlist(){
//plistファイルの読み込み
ValueVector plistData = FileUtils::getInstance()->getValueVectorFromFile("sample.plist");
//Enemyクラスを格納できるvector作成
//Enemyクラスは自作してください
std::vector<Enemy*> enemyList;
//plistの行を一行ごとに読み込む
for (auto itr : plistData){
ValueMap dic = itr.asValueMap();
int player = dic.at("playerNo").asInt();
std::string name = dic.at("name").asString();
int coin = dic.at("coin").asInt();
std::string last = dic.at("last").asString();
//一行ごとにEnemyを作る
Enemy* enemy = Enemy::create(player, name, coin, last);
this->addChild(enemy);
//enemyListにenemyを登録
enemyList.push_back(enemy);
}
//enemyListの中身を頭から読み込む
for (auto itr = enemyList.begin(); itr != enemyList.end(); itr++) {
Enemy* enemy = (Enemy*)(*itr);
//enemyを動かすならmove関数作って動かせばいい
}
}
ステージごとに敵のデータを一気に読み込んで画面外に待機させ、時間経過とともに動かせばゲームっぽくなる
#使い方-書き込み-
Sample.cpp
void Sample::savePlist(){
//データを保存するために格納するValueVectorを作成
ValueVector saveData;
//書き込みたいデータを作成
ValueMap data1;
data1["id"] = 1;
data1["name"] = "tarou";
data1["age"] = 14;
saveData.push_back(Value(data1));
ValueMap data2;
data2["id"] = 2;
data2["name"] = "oyaji";
data2["age"] = 42;
saveData.push_back(Value(data2));
//パスを指定して書き込む
std::string path = FileUtils::getInstance()->getWritablePath() + "save.plist";
if (FileUtils::getInstance()->writeValueVectorToFile(saveData, path)){
//書込み成功時の処理
}
}
読み込みと書き込みをすればセーブデータとなる
ただ、plistはテキストファイルとして開くことができ、改竄出来る
改竄出来ない、させない工夫が必要である
#次回
そのうち考える