flighting6666是什么意思思

EVERYONE YELLED FOR THEM TO STOP BUT THEY KEPT ON FLIGHTING的成语意思_百度知道
EVERYONE YELLED FOR THEM TO STOP BUT THEY KEPT ON FLIGHTING的成语意思
EVERYONE YELLED FOR THEM TO STOP BUT THEY KEPT ON FLIGHTING(两打架) 周围每都喊停手啦继续干
其他类似问题
成语意思的相关知识
其他2条回答
每都声叫嚷停止,继续飞行
每个人都叫他们停止,但他们一直在飞行
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&&|&&责编:崔宁
在一个游戏里面,需要用到的数据一般都是由游戏策划提供的(这里的策划还是由我自己担任啦哈哈)。什么是需要用到的数据?例如我创建一个角色A,A有他自己的攻击力,防御力,速度等,再创建一个角色B,B也有自己的攻击力,防御力,速度等。每个角色都有一些基础属性,但是对应不同的角色,属性的值有可能不同。我们不可能在代码里面把这些数据写死。最好的办法是从一个文件(通常是Excel表格)中读入数据,这样就方便管理和修改。
& & & &《Flighting》游戏里面用到了4个Excel表格(在Resource的excel文件夹可以找到)。
HeroMessage:对应不同英雄的各个属性
MonsterMessage:对应不同怪物的各个属性
SkillMessage:对应不同技能的各个属性
StageMessage:对应不同关卡的各个属性
& 其中一个Excel表基本格式如下图:
(点小图查看大图)
格式很简单,基本上一看就知道怎么回事了。
2.下面我们以HeroMessage为例子进行接下来的操作。
我们已经做好我们需要的Excel表格,现在我们的目标是将表格的一条条的信息用一个个对象(bean)保存起来。
这里我也是同样采用了cocostuio提供的数据编辑器。大致的思路是这样的:先用cocostudio的数据编辑器将excel表转成一串JSON字符串。
再在代码里面读取并解析这串字符串,将数据信息用一个对象保存,方便管理。
第一步:数据编辑器的使用
打开cocostudio1.6 -》选择数据管理器-》文件-》导入模板表-》Excel
导入完之后
文件-》导出JSON文件-》确定
成功的话,会得到一个json文件,可以用记事本打开看看。
接下来我们作如下修改,字符串的上一行加入:
{”json“:
在字符串的下一行加入:
不清楚的话可以看图:修改前:
(点小图查看大图)
(点小图查看大图)
懂json的人可能知道这是为什么,不懂也没关系,先照着做就好。
第二步:在代码中构造相应的信息保存类(bean)
HeroMessage.h
#ifndef _HEROMESSAGE_H_
#define _HEROMESSAGE_H_
#include &string&
class HeroMessage{
string r_//骨骼动画资源名
string r_//骨骼动画png
string r_//骨骼动画plist
string r_ExportJ//骨骼动画ExportJson
int offset_x;//x的偏移量
int offset_y;//y的偏移量
int atk_//攻击距离
//移动速度
double atk_//攻击速度
//是不是牧师
//子弹资源名称
//对应的技能id
第三步:信息转换工具HeroMessageUtil
HeroMessageUtil就是负责将Json文件读取并加载相应的信息。再用HeroMessage保存
#ifndef _HMUTIL_H_
#define _HMUTIL_H_
#include &HeroMessage.h&
#include &json/rapidjson.h&
#include &json/document.h&
#include &cocos2d.h&
#include &map&
using namespace cocos2d;
class HeroMessageUtil{
static HeroMessageUtil* getInstance();
HeroMessage getMessageById(int id);
map&int,HeroMessage& getHeroMessageMap();
HeroMessageUtil();
~HeroMessageUtil();
void initHeroMsgMap();
static HeroMessageUtil* m_
map&int,HeroMessage& heroMsgM
可以看出,除了单例方法,构造函数和析构函数外,有三个函数和一个成员变量需要注意
1. map&int,HeroMessage& heroMsgM & & 这是一个map,键是英雄的唯一id,值是对应的信息对象
2. HeroMessage getMessageById(int id); & 通过一个英雄的id,获取其全部信息
map&int,HeroMessage& getHeroMessageMap();
获取英雄信息map
3. void initHeroMsgMap();
初始化英雄信息类,在构造函数中会调用
HeroMessageUtil::HeroMessageUtil(){
initHeroMsgMap();
因此,我们重点关注void initHeroMsgMap()
void HeroMessageUtil::initHeroMsgMap(){
std::string
jsonStr = cocos2d::FileUtils::getInstance()-&getStringFromFile(&Json/HeroMessage.json&);
rapidjson::Document _mD
std::string mstr = jsonS
RETURN_IF(NULL==mstr.c_str()||!pare(&&));
_mDoc.Parse&0&(mstr.c_str());
RETURN_IF(_mDoc.HasParseError()||!_mDoc.IsObject());
const rapidjson::Value &pArr = _mDoc[&json&];
CCLOG(&Size = %d&,pArr.Capacity());
for(int i=0;i&pArr.Capacity();++i){
const rapidjson::Value &temp = pArr[i];
int id = temp[&id&].GetInt();
h.id = temp[&id&].GetInt();
h.name = temp[&name&].GetString();
h.r_name = temp[&r_name&].GetString();
h.r_png = temp[&r_png&].GetString();
h.r_plist = temp[&r_plist&].GetString();
h.r_ExportJson = temp[&r_ExportJson&].GetString();
h.offset_x = temp[&offset_x&].GetInt();
h.offset_y = temp[&offset_y&].GetInt();
h.atk_dis = temp[&atk_dis&].GetInt();
h.hp = temp[&hp&].GetInt();
h.atk = temp[&atk&].GetInt();
h.def = temp[&def&].GetInt();
h.speed = temp[&speed&].GetInt();
h.atk_speed = temp[&atk_speed&].GetDouble();
int b = temp[&naima&].GetInt();
h.naima = b==0?false:
h.bullet = temp[&bullet_img&].GetString();
h.skill = temp[&skill&].GetInt();
heroMsgMap.insert(make_pair(id,h));
CCLOG(&h : %s&,h.r_png.c_str());
CCLOG(&MapSize = %d&,heroMsgMap.size());
这里我们用到的是rapidJson这个api,cocos2dx的附加库里面已经有的。所以我们只需要引入以下两个头文件就好
#include &json/rapidjson.h&
#include &json/document.h&
std::string
jsonStr = cocos2d::FileUtils::getInstance()-&getStringFromFile(&Json/HeroMessage.json&);读取&Json/HeroMessage.json&这个文件,并将这个文件转成一串string
rapidjson::Document _mD_mDoc是一个Document对象,可以先暂时理解为一个容器
_mDoc.Parse&0&(mstr.c_str());将从json文件读取的那串字符串转成一个Document对象
const rapidjson::Value &pArr = _mDoc[&json&];读取_mDoc对应的那个json对象中,键为”json“的那个值,保存的pArr对象中(还记得刚刚对json文件的修改吗,现在得到的pArr对象其实才是真正包含重要数据的)
接下来的for循环就是用来遍历一行一行数据的。(pArr.Capacity可以获取pArr对象中又包含了多少个对象)
const rapidjson::Value &temp = pArr[i];//当前行也是一个Value对象,用temp保存
int id = temp[&id&].GetInt();//temp[&id&]表示从value对象中搜索键值为&id&,并且GetInt方法转换成int
h.id = temp[&id&].GetInt();//将解析出来的int保存到我们的目的地——HeroMessage
最后构造好HeroMessage对象之后,记得把它放到map里面
heroMsgMap.insert(make_pair(id,h));
这样我们将excel表里面一行行的数据放到了一个map里面了。
最后贴上HeroMessageUtil两个常用的方法:
map&int,HeroMessage& HeroMessageUtil::getHeroMessageMap(){
return heroMsgM
HeroMessage HeroMessageUtil::getMessageById(int id){
heroMsgMap.find(id);
CCASSERT(it!=heroMsgMap.end(),&can't get hero msg of the id&);
return (*it).
本节结束。
我的csdn地址:
邮箱地址:
如有问题或指教,欢迎与我交流,谢谢。
本文相关搜索英语:flight是什么意思?_百度知道
英语:flight是什么意思?
提问者采纳
提问者评价
太给力了,你的回答完美解决了我的问题!
其他类似问题
按默认排序
其他3条回答
英 [flaɪt] 美 [flaɪt] n. (物体的)飞行; 航班; 飞翔; 楼梯的一段 vi. 成群地迁徙或飞行 vt. 射击; 使惊飞 网 络 飞行;航班;班机;逃跑 复数: flights 过去式: flighted 过去分词: flighted 现在分词: flighting 第三人称单数: flights ~亲,如果你认可我的回答,请点击【采纳为满意回答】按钮~~手机提问的朋友在客户端上评价点【满意】即可。~你的采纳是我前进的动力~~O(∩_∩)O,互相帮助,共同进步!
n.飞机,逃走
v.射击,迁徙
英语的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 6666是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信