本文整理汇总了C++中Asset::createEntity方法的典型用法代码示例。如果您正苦于以下问题:C++ Asset::createEntity方法的具体用法?C++ Asset::createEntity怎么用?C++ Asset::createEntity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Asset
的用法示例。
在下文中一共展示了Asset::createEntity方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadGame
bool AssetPack::loadGame(vector<Entity *> &entities, const string &saveFile) {
int id = 1;
Json::Reader reader;
Value saveRoot;
ifstream file(saveFile, ios::in);
if (!file) {
cout << "Could not open entity file: " << saveFile << endl;
return false;
}
if (!reader.parse(file, saveRoot)) {
cout << "Could not parse entity file: " << saveFile << endl;
file.close();
return false;
}
if (!saveRoot.isObject()) return false;
Value ents = saveRoot["Entities"];
if (!ents.isArray()) return false;
for (Value ent : ents) {
Value assetVal = ent["Asset"];
Value position = ent["Position"];
Value rotation = ent["Rotation"];
if (!assetVal.isString()) return false;
Asset *asset = getAsset(assetVal.asString());
if (asset == NULL) {
//ignore invalid asset
cout << "Invalid asset: " << assetVal.asString() << endl;
continue;
}
btVector3 pos;
btQuaternion rot;
if (!parseQuaternion(rotation, rot)) continue;
if (!parseVector3(position, pos)) continue;
entities.push_back(asset->createEntity(btTransform(rot, pos), id++));
}
return true;
}