分析Cocos2d-x横版ACT手游源代码 1、公共

前端之家收集整理的这篇文章主要介绍了分析Cocos2d-x横版ACT手游源代码 1、公共前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. 直接上代码 不说什么 这一款源代码 注释及多 PublicDef.h 公共头文件
  1. #define NF_PLATFORM 1 //当前版本(默认为普通版)
  2.  
  3. //版本列表
  4. #define NF_PLATFORM_NORMAL 1 //normal
  5. #define NF_PLATFORM_91 2 //91 playform
  6. #define NF_PLATFORM_PP 3 //PP playform
  7. #define NF_PLATFORM_UC_ANDROID 4 //UC playform
  8. #define NF_PLATFORM_360_ANDROID 5 //360 playform
  9. #define NF_PLATFORM_DK_ANDROID 6 //DK playform
  10. #define NF_PLATFORM_MI_ANDROID 7 //MI playform
  11. #define NF_PLATFORM_WDJ_ANDROID 8 //WDJ playform
  12. #define NF_PLATFORM_OPPO_ANDROID 9 //OPPO playform
  13. #define NF_PLATFORM_WYX_ANDROID 10 //WYX playform
  14.  
  15.  
  16. //静态数据管理
  17. #define _TR_STATIC_DATABASE_FILE_NAME_ "nf_static.db"
  18. std::string GetStaticDataname();
  19.  
  20. //存储数据管理
  21. #define _NF_SAVE_DATABASE_FILE_NAME_ "nf_save.db"
  22. std::string GetSaveDataname();
  23.  
  24. #define SCREEN_WIDTH CCDirector::sharedDirector()->getWinSize().width //屏幕宽(指定分辨率)
  25. #define SCREEN_HEIGHT 480 //屏幕高(指定分辨率)
  26. #define SCREEN_CENTER ccp(SCREEN_WIDTH*0.5f,SCREEN_HEIGHT*0.5f) //屏幕中心
  27. #define NAME_LEN 128
  28. #define _NF_ABS(x) ( (x)>=0 ? (x) : -(x) )
  29.  
  30. //非Win32平台的一些数据类型定义
  31. #if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32)
  32. typedef unsigned int UINT;
  33. typedef unsigned short WORD;
  34. typedef unsigned long DWORD;
  35. typedef unsigned char BYTE;
  36. #endif
  37.  
  38.  
  39. //消息接收
  40. class CMsgReceiver
  41. {
  42. public:
  43. virtual void RecMsg(int nMsgID,void* pInfo,int nSize)
  44. {
  45.  
  46. }
  47. };
  48.  
  49. //消息发送
  50. class CMsgSender
  51. {
  52. protected:
  53. CMsgReceiver * m_pReceiver;;
  54.  
  55. public:
  56. void SetMsg(CMsgReceiver * pReceiver)
  57. {
  58. m_pReceiver = pReceiver;
  59. }
  60.  
  61. bool SendMsg(int nMsgID,int nSize)
  62. {
  63. if (m_pReceiver == NULL)
  64. {
  65. return false;
  66. }
  67. else
  68. {
  69. m_pReceiver->RecMsg(nMsgID,pInfo,nSize);
  70. return true;
  71. }
  72. }
  73. };
  74.  
  75. //z轴
  76. enum
  77. {
  78. enZOrderBack=100,enZOrderMid=100000,enZOrderFront=300000,};
  79.  
  80. //玩家控制的角色
  81. enum
  82. {
  83. enTagProtagonist,};
  84.  
  85.  
  86. ///=======================================================================
  87. //消息标签
  88. enum
  89. {
  90. enMsgCommonAttack,//普通攻击
  91. enMsg_Hit_Enemy,//击中敌人
  92. enMsg_RemoveEnemy,//移除敌人
  93. enMsg_RemoveProtagonist,//移除主角
  94. enMsgEnemyCommonAttack,//敌人普通攻击
  95. enMsgProtagonistSkill,//技能
  96. enMsgProtagonistTransfer,//传送门
  97. enMsgCreateEnemy,//创建敌人
  98. enMsgGameWin,//游戏胜利
  99. enMsgCreateGameWinLayer,//创建游戏胜利页
  100. enMsgCreateGameOverLayer,//创建游戏失败页
  101. };
  102.  
  103. //城镇消息标签
  104. enum
  105. {
  106. enMsgCreateFbSelectLayer,//创建副本选择页
  107. };
  108.  
  109.  
  110. //消息标签:根据服务器数据,进行操作
  111. enum
  112. {
  113. enHttpMsg_CheckUserExist = 1,//用户角色检测
  114. enHttpMsg_CreateHero,};
  115.  
  116.  
  117. //敌人创建结构体
  118. struct Cmd_CreateEnemyInfo
  119. {
  120. int nEnemyID; //敌人ID
  121. int nEnemyLevel; //敌人等级
  122. float fPosX; //敌人创建x轴位置
  123. float fPosY; //敌人创建y轴位置
  124. };
  125.  
  126.  
  127. //
  128. struct tagTransferDoor
  129. {
  130. int nID;
  131. tagTransferDoor(){
  132. nID = 0;
  133. }
  134. };
  135.  
  136. //移除人物的结构体
  137. class CNFBasicPerson;
  138. struct tagRemovePerson
  139. {
  140. CCArray* pArrayTarget;
  141. CNFBasicPerson* pPerson;
  142. tagRemovePerson(){
  143. pArrayTarget = NULL;
  144. }
  145. };
  146.  
  147.  
  148.  
  149. //区分城镇和副本的ID范围 ID:0-10000为城镇,10001-19999为副本 ,20000以上为城镇副本
  150. #define _NF_TOWN_OR_BATTLE_ID_ 10000
  151. #define _NF_TOWN_FB_ID_ 20000
  152.  
  153.  
  154.  
  155. /************************************************************************/
  156. /* 力量,智力与hp,mp的转化量 */
  157. /************************************************************************/
  158. #define _NF_POWER_HP_ 16
  159. #define _NF_WIT_MP_ 14
  160. #define _NF_ATTACK_UP_RATE_POWER_ 14
  161. #define _NF_ATTACK_UP_RATE_WIT_ 14
  162. #define _NF_ATTACK_UP_RATE_AGILITY_ 14
  163. #define _NF_DOMINATION_UP_RATE_POWER_ 20
  164. #define _NF_DOMINATION_UP_RATE_WIT_ 20
  165. #define _NF_DOMINATION_UP_RATE_AGILITY_ 20
  166.  
  167. #define _NF_HIT_CD_ 180
  168.  
  169. //毅力计算系数
  170. #define _NF_PERSEVERANCE_COEFFICIENT_ 4285
  171.  
  172. //防御计算系数
  173. #define _NF_DEFENSE_COEFFICIENT_ 2857
  174.  
  175.  
  176.  
  177. /************************************************************************/
  178. /* buff编号 */
  179. /************************************************************************/
  180. #define _NF_BUFF_TREATFORMULA_ID 1 //治疗
  181. #define _NF_BUFF_SIPERARMOR_ID 2 //霸体
  182. #define _NF_BUFF_ASTHENIA_ID 3 //衰弱
  183. #define _NF_BUFF_ATTACKSPEEDCUT_ID 4 //缓慢
  184. #define _NF_BUFF_MOVESPEEDCUT_ID 5 //减速
  185. #define _NF_BUFF_POISONING_ID 6 //中毒
  186. #define _NF_BUFF_BFB_TREATFORMULA_ID 7 //百分比治疗
  187. #define _NF_BUFF_SINGLE_ATTACKUP_ID 8 //增加单体攻击力
  188. #define _NF_BUFF_ATTACKUP_ID 9 //增加群体攻击力
  189. #define _NF_BUFF_S_SIPERARMOR_ID 10 //群体霸体
  190. #define _NF_BUFF_S_MP_RECOVER_ID 11 //群体百分比恢复MP
  191.  
  192.  
  193.  
  194. //拳花类型
  195. enum
  196. {
  197. enTagAttackType_Common = 1,//普通
  198. enTagAttackType_Sharp = 2,//锐利
  199. enTagAttackType_Fire = 3,//火焰
  200. enTagAttackType_Electricity = 4,//雷电
  201.  
  202. };
  203.  
  204. /************************************************************************/
  205. /* 技能摇杆 */
  206. /************************************************************************/
  207.  
  208. //技能CD结构体
  209. struct tagSkillCDInfo
  210. {
  211. int nSkill_SkillItemID; //技能块ID
  212. int nSkill_CD_Time; //技能的CD时间
  213. int nSkill_CD_Time_Temp; //技能的当前CD时间
  214. string strSkill_AniName; //动画名
  215. float fCostMp; //消耗魔法值
  216. };
  217.  
  218.  
  219.  
  220. /************************************************************************/
  221. /* UI */
  222. /************************************************************************/
  223. //屏幕适配,宽度差值
  224. #define _NF_SCREEN_WIDTH_DIS_ ( CCDirector::sharedDirector()->getWinSize().width*0.5f - 360 )
  225.  
  226.  
  227. //服务器选择结构体
  228. struct tagServerSelect
  229. {
  230. int nServerID; //服务器ID
  231. };
  232.  
  233. //消息发送:外部UI
  234. enum enUI_Msg
  235. {
  236. enMsg_ServerSelect,//服务器选择
  237. };
  238.  
  239.  
  240. /************************************************************************/
  241. /* 结构体 */
  242. /************************************************************************/
  243. //景深地图信息结构体
  244. struct tagTmxStaticInfo
  245. {
  246. string strTmxName; //景深地图名字
  247. float fStartPosX; //景深地图x轴初始位置
  248. float fStartPosY; //景深地图y轴初始位置
  249. };
  250. typedef map<int,tagTmxStaticInfo> CNFTmxStaticInfoMap; //景深地图静态信息map
  251.  
  252. //敌人AI
  253. enum enumEnemyAIKind //行动种类
  254. {
  255. enEnemyAIHold,//待机
  256. enEnemyAICrosswiseApproach,//直线接近
  257. enEnemyAICrosswiseDisapproach,//直线远离
  258. enEnemyLengthwaysApproach,//并线接近
  259. enEnemyLengthwaysDisapproach,//并线远离
  260. enEnemyDirectlyApproach,//斜角靠近
  261. enEnemyCircuity,//绕背
  262. enEnemyAttackTypeShort,//攻击-近
  263. enEnemyAttackTypeLong,//攻击-远
  264. };
  265. enum enumEnemyAICondition //AI条件
  266. {
  267. enEnemyCondition_SameCrosswise_InRangeLong,//同线 且范围处于 远距离攻击 和近距离攻击范围之间
  268. enEnemyCondition_SameCrosswise_InRangeShort,//同线 且范围处于 近距离攻击范围内
  269. enEnemyCondition_SameCrosswise_NotInRange,//同线 且范围处于 远距离攻击 范围外
  270. enEnemyCondition_NotSameCrosswiss_Near,//不同线 但距离很近
  271. enEnemyCondition_NotSameCrosswiss_Far_FacePlayer,//不同线 距离远 面对玩家正面
  272. enEnemyCondition_NotSameCrosswiss_Far_NotFacePlayer,//不同线 距离远 面对玩家背面
  273. };
  274.  
  275. typedef map<enumEnemyAIKind,int> CMapAIActionOnKind; //敌人行动类型map
  276. typedef map<enumEnemyAICondition,CMapAIActionOnKind> CMapAI; //敌人AI条件map
  277. typedef map<int,CMapAI> CEnemyAIStaticInfoMap; //通过ID,得到敌人AI信息
  278.  
  279. //buff(debuff)静态信息结构体
  280. struct tagBuffStaticInfo
  281. {
  282. int nBuffID; //buffID
  283. int nBuffTime; //buff持续时间
  284. int nBuffTime_g; //buff持续时间成长
  285. float fBuffPoint1; //buff点数1
  286. float fBuffPoint1_g; //buff点数1成长
  287. float fBuffPoint2; //buff点数2
  288. float fBuffPoint2_g; //buff点数2成长
  289. };
  290. typedef map<int,tagBuffStaticInfo> CNFBuffStaticInfoMap; //buff静态信息map
  291. typedef vector<tagBuffStaticInfo> CNFBuffStaticInfoVec; //buff静态信息
  292.  
  293. //buff(debuff)信息结构体
  294. struct tagBuffInfo
  295. {
  296. int nBuffID; //buffID
  297. int nBuffTime; //buff持续时间
  298. float fBuffPoint1; //buff点数1
  299. float fBuffPoint2; //buff点数2
  300. };
  301. typedef vector<tagBuffInfo> CNFBuffInfoVec; //buff信息
  302.  
  303.  
  304. //技能块自身的变化信息
  305. struct tagSkillChangeInfo
  306. {
  307. float fChangeTime; //变化时间
  308. int nIsGravity; //是否开启重力 1.开启 0.不开启
  309.  
  310. float fOldX; //技能块,旧x轴位置
  311. float fOldY; //技能块,旧y轴位置
  312. float fOldZ; //技能块,旧z轴位置
  313. float fOldLength; //技能块,旧长度
  314. float fOldWidth; //技能块,旧宽度
  315. float fOldHeight; //技能块,旧高度
  316.  
  317. float fNewX; //技能块,新x轴位置
  318. float fNewY; //技能块,新y轴位置
  319. float fNewZ; //技能块,新z轴位置
  320. float fNewLength; //技能块,新长度
  321. float fNewWidth; //技能块,新宽度
  322. float fNewHeight; //技能块,新高度
  323.  
  324.  
  325. };
  326.  
  327. //技能块伤害信息
  328. struct tagSkillDamageInfo
  329. {
  330. CNFBuffStaticInfoVec vecTargetBuff; //被攻击者的buff或debuff
  331. float fDamagePoint; //基础攻击力
  332. float fDamagePoint_g; //攻击力系数
  333. float fDamagePercent; //技能百分比
  334. float fDamagePercent_g; //技能百分比成长
  335. float fXDis; //被攻击者x轴的变化量
  336. float fXTime; //被攻击者x轴的变化时间
  337. float fYDis; //被攻击者y轴的变化量
  338. float fYTime; //被攻击者y轴的变化时间
  339. float fZSpeed; //被攻击者z轴的速度变化
  340. int nIsConversely; //被攻击者是否倒地 1.倒地 0.不倒地
  341. int nCrickAdd; //被攻击者硬直增加
  342. int nAttackSpeed; //攻击之间的间隔(帧)
  343. int nIsExplodeMode; //是否为爆炸模式 1.是 0.不是
  344. int nIsPullMode; //是否为拉近到面前模式 1.是 0.不是
  345.  
  346. int nCritAdd; //暴击率增加
  347. float fCritDamageAdd; //暴击伤害增加
  348. int nHitTargetAdd; //命中增加
  349. int nIsDirection; //是否有方向 1.有 0.没有
  350.  
  351. int nIsSuctionMode; //是否为吸引模式 1.是 0.不是
  352. float fSuctionSpeed; //吸引的速度
  353. float fSuctionTime; //吸引的时间(秒)
  354. float fSuctionPosX; //吸引到的x轴位置:相对于角色,面部向右
  355. float fSuctionPosY; //吸引到的y轴位置
  356.  
  357. int nIsOnlyDamageNotHit; //是否只受到伤害,但不播放被击动画(用于地面AOE) 1.是 0.不是
  358. int nIsSuctionSkillItemCenter; //是否吸引到技能块中心 1.是 0.不是 ps:若“是”,则fSuctionPosX和fSuctionPosY无意义。
  359.  
  360. int nIsDamage; //是否计算伤害 1.是 0.不是
  361. int nIsFollow; //技能块是否跟随释放者 1.是 0.不是
  362.  
  363. int nIsBreakSiperarmor; //是否破霸体
  364. int nHitEffectType; //拳花类型
  365.  
  366. };
  367.  
  368. //技能Item结构体
  369. struct tagSkillItemStaticInfo
  370. {
  371. bool bIsCommonSkill; //是否为普通攻击
  372. float fDelayTime; //延迟时间
  373. float fDisX; //释放者,x轴位移量
  374. float fTimeX; //释放者,x轴时间
  375. float fDisY; //释放者,y轴位移量
  376. float fTimeY; //释放者,y轴时间
  377. float fSpeedZ; //释放者,z轴速度
  378. int nScreenIsShake; //屏幕是否震动 1.震动 0.不震动
  379. float fShakeDurTime; //屏幕震动持续时间(秒)
  380. float fShakeDegree; //屏幕震动幅度
  381. int nShakeCount; //屏幕震动次数
  382. int nIsLensfeatrue; //屏幕是否拉伸
  383. float fLensfeatureTime; //屏幕拉伸时间(秒)
  384. int nIsScreenChangeColor; //屏幕是否改变颜色 0.不改变 1.变黑
  385. float fScreenChangeColorTime; //屏幕颜色改变时间(秒)
  386. int nIsTurnRound; //释放者是否转头 1.是 0.不是
  387.  
  388. CNFBuffStaticInfoVec vecBuff; //释放者的buff或debuff
  389. tagSkillChangeInfo tSkillChange; //技能块,自身变化信息
  390. tagSkillDamageInfo tSkillDamage; //技能块,伤害信息
  391.  
  392. int nIsArmature; //技能块,是否有骨骼动画:1.有 0,没有
  393. string strArmatureName; //骨骼动画名称
  394. int nIsSound; //技能块,是否有音效:1.有 0,没有
  395. string strSoundName; //音效名称
  396. };
  397. typedef vector<tagSkillItemStaticInfo> CNFSkillItemVec; //技能块容器
  398.  
  399. //技能静态信息结构体
  400. struct tagSkillStaticInfo
  401. {
  402. int nSkillID; //技能ID
  403. int nIsCommonSkill; //是否为普通攻击:1.是 0.不是
  404. int nSkillCD; //技能CD(帧)
  405. int nSkillCD_g; //技能CD成长
  406. float fCostMp; //魔法消耗
  407. float fCostMp_g; //魔法消耗成长
  408. string strAniName; //动画名称
  409. string strSkillName; //技能名称
  410. string strSkillIntroduce; //技能介绍
  411. CNFSkillItemVec vecSkillItem; //技能块容器
  412.  
  413. };
  414. typedef map<int,tagSkillStaticInfo> CNFSkillStaticMapBySkillID; //通过技能ID,得到tagSkillStaticInfo
  415. typedef map<int,CNFSkillStaticMapBySkillID> CNFSkillStaticInfoMapByProtagonistID; //通过主角ID,得到CNFSkillStaticMapBySkillID
  416. typedef vector<tagSkillStaticInfo> CNFSkillStaticInfoVec; //技能静态信息vec
  417.  
  418.  
  419. //攻击的结构体
  420. struct tagTakeABeating
  421. {
  422. CNFBuffInfoVec vecBuff; //目标的buff或debuff
  423. float fDamagePoint; //攻击力
  424. int nHitTarget; //命中
  425. int nCrit; //暴击
  426. float fCritDamage; //暴击伤害
  427. int nXDis; //被攻击者x轴的变化量
  428. float fXTime; //被攻击者x轴的变化时间
  429. int nYDis; //被攻击者y轴的变化量
  430. float fYTime; //被攻击者y轴的变化时间
  431. float fZSpeed; //被攻击者z轴的速度变化
  432. bool bIsConversely; //被攻击者是否倒地
  433. int nCrickAdd; //被攻击者硬直增加
  434. int nAttackSpeed; //攻击之间的间隔(帧)
  435. bool bIsExplodeMode; //是否是爆炸模式
  436. bool bIsPullMode; //是否是拉倒面前模式
  437. bool bIsSuctionMode; //是否为吸引模式
  438. float fSuctionSpeed; //吸引的速度
  439. float fSuctionTime; //吸引的时间(秒)
  440. float fSuctionPosX; //吸引到的x轴位置:相对于角色,面部向右
  441. float fSuctionPosY; //吸引到的y轴位置
  442. bool bIsOnlyDamageNotHit; //是否只受到伤害,但不播放被击动画(用于地面AOE)
  443. bool bIsSuctionSkillItemCenter; //是否吸引到技能块中心 ps:若“是”,则fSuctionPosX和fSuctionPosY无意义。
  444. bool bIsDamage; //是否计算伤害
  445. bool bIsFollow; //是否跟随释放者
  446. bool bIsBreakSiperarmor; //是否破霸体
  447. int nHitEffectType; //拳花类型
  448.  
  449. tagTakeABeating()
  450. {
  451. bIsExplodeMode = false;
  452. bIsPullMode = false;
  453. bIsDamage = true;
  454. }
  455. };
  456.  
  457. //普通攻击结构体
  458. class CNFBasicPerson;
  459. struct tagCommonAttack
  460. {
  461. CNFBasicPerson* pReleaser; //释放者
  462. CCArray *pArrayTarget; //目标数组
  463. float fChangeTime; //变化时间
  464. int nIsGravity; //是否开启重力 1.开启 0.不开启
  465. float fOldX; //技能块,旧x轴位置
  466. float fOldY; //技能块,旧y轴位置
  467. float fOldZ; //技能块,旧z轴位置
  468. float fOldLength; //技能块,旧长度
  469. float fOldWidth; //技能块,旧宽度
  470. float fOldHeight; //技能块,旧高度
  471.  
  472. float fNewX; //技能块,新x轴位置
  473. float fNewY; //技能块,新y轴位置
  474. float fNewZ; //技能块,新z轴位置
  475. float fNewLength; //技能块,新长度
  476. float fNewWidth; //技能块,新宽度
  477. float fNewHeight; //技能块,新高度
  478.  
  479. int nIsArmature; //技能块,是否有骨骼动画:1.有 0,没有
  480. string strArmatureName; //骨骼动画名称
  481.  
  482. tagTakeABeating tTakeABeating;
  483. tagCommonAttack(CNFBasicPerson* pReleaserU,tagSkillItemStaticInfo* pInfo,int nSkillLV);
  484. tagCommonAttack(){
  485. }
  486. };
  487.  
  488.  
  489.  
  490.  
  491. /************************************************************************/
  492. /* 主角AI */
  493. /************************************************************************/
  494. //治疗技能
  495. struct tagTreatSkillInfo
  496. {
  497. int nSkillID; //技能ID
  498. float fBloodPer; //触发加血技能的hp最低百分比
  499. };
  500. typedef vector<tagTreatSkillInfo> CNFTreatSkillVec; //治疗技能容器
  501.  
  502. //必然技能
  503. struct tagMustSkillInfo
  504. {
  505. int nSkillID; //技能ID
  506. };
  507. typedef vector<tagMustSkillInfo> CNFMustSkillVec; //必然技能容器
  508.  
  509. //距离技能块
  510. struct tagDistanceItem
  511. {
  512. int nSkillID; //技能ID
  513. int nDelayTime; //延迟时间(帧),总时间
  514. };
  515. typedef vector<tagDistanceItem> CNFDistanceItemVec; //距离技能块容器
  516.  
  517. //距离技能
  518. struct tagDistanceSkillInfo
  519. {
  520. float fSkillDistance; //释放技能的距离范围
  521. CNFDistanceItemVec vecDistanceItem; //距离技能块容器
  522. };
  523. typedef vector<tagDistanceSkillInfo> CNFDistanceSkillVec; //距离技能容器
  524.  
  525.  
  526. //主角Ai结构体
  527. struct tagProtagonistAIInfo
  528. {
  529. CNFTreatSkillVec vecTreatSkill; //治疗技能
  530. CNFMustSkillVec vecMustSkill; //必然技能
  531. CNFDistanceSkillVec vecDistanceSkill; //距离技能
  532. };
  533. //typedef map<int,tagProtagonistAIInfo> CNFProtagonistAIMap; //主句ai容器
  534.  
  535.  
  536. /************************************************************************/
  537. /* NPC */
  538. /************************************************************************/
  539. //ncp静态信息结构体
  540. struct tagNPCStaticInfo
  541. {
  542. string strArmatureName; //NPC 动画名称
  543. float fLength; //NPC 长度
  544. float fWidth; //NPC 宽度
  545. float fHeight; //NPC 高度
  546. };
  547. typedef map<int,tagNPCStaticInfo> CNFNPCStaticInfoMap; //NPC静态信息容器
  548.  
  549. //npc Json信息
  550. struct tagNPCJsonInfo
  551. {
  552. int nNPCID; //NPC ID
  553. float fPosX; //NPC x轴位置
  554. float fPosY; //NPC y轴位置
  555. float fPosZ; //NPC z轴位置
  556. tagNPCStaticInfo NPCStaticInfo; //NPC 静态信息
  557. };
  558. typedef vector<tagNPCJsonInfo> CNFNPCJsonInfoVec; //NPC Json 信息容器
  559.  
  560.  
  561.  
  562. /************************************************************************/
  563. /* DOOR */
  564. /************************************************************************/
  565. //door静态信息结构体
  566. struct tagDoorStaticInfo
  567. {
  568. string strArmatureName; //Door 动画名称
  569. float fLength; //Door 长度
  570. float fWidth; //Door 宽度
  571. float fHeight; //Door 高度
  572. int nRelaceStageID; //Door 跳转到的关卡ID
  573. };
  574. typedef map<int,tagDoorStaticInfo> CNFDoorStaticInfoMap; //Door静态信息容器
  575.  
  576. //door Json信息
  577. struct tagDoorJsonInfo
  578. {
  579. int nDoorID; //Door ID
  580. float fPosX; //Door x轴位置
  581. float fPosY; //Door y轴位置
  582. float fPosZ; //Door z轴位置
  583. tagDoorStaticInfo DoorStaticInfo; //Door 静态信息
  584. };
  585. typedef vector<tagDoorJsonInfo> CNFDoorJsonInfoVec; //Door Json 信息容器
  586.  
  587.  
  588. /************************************************************************/
  589. /* http消息发送结构体 */
  590. /************************************************************************/
  591. //注册
  592. struct THttpRegister
  593. {
  594. string strUserName; //用户名
  595. string strPassWord; //用户密码
  596. };
  597.  
  598. //登录
  599. struct THttpLogin
  600. {
  601. string strUserName; //用户名
  602. string strPassWord; //用户密码
  603. };
  604.  
  605. //创建角色
  606. struct TTHttpCreateHero
  607. {
  608. int nHeroID; //角色ID
  609. string strHeroName; //角色名称
  610. };
  611.  
  612.  
  613.  
  614.  
  615. #endif
  1.  
  1. <span style="white-space:pre"> </span>公共 PublicDef.cpp 文件
  1.  
  1. #include "PublicDef.h"
  2. #include "../gameunit/person/NFProtagonist.h"
  3.  
  4.  
  5.  
  6.  
  7. //静态数据库
  8. std::string GetStaticDataname()
  9. {
  10. #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
  11. <span style="white-space:pre"> </span>return _TR_STATIC_DATABASE_FILE_NAME_;
  12. #else
  13. <span style="white-space:pre"> </span>std::string strResult = CCFileUtils::sharedFileUtils()->getWritablePath();
  14. <span style="white-space:pre"> </span>strResult+= _TR_STATIC_DATABASE_FILE_NAME_;
  15. <span style="white-space:pre"> </span>return strResult;
  16. #endif
  17. }
  18.  
  19.  
  20. //存储数据库
  21. std::string GetSaveDataname()
  22. {
  23. #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
  24. <span style="white-space:pre"> </span>return _NF_SAVE_DATABASE_FILE_NAME_;
  25. #else
  26. <span style="white-space:pre"> </span>std::string strResult = CCFileUtils::sharedFileUtils()->getWritablePath();
  27. <span style="white-space:pre"> </span>strResult+= _NF_SAVE_DATABASE_FILE_NAME_;
  28. <span style="white-space:pre"> </span>return strResult;
  29. #endif
  30. }
  31.  
  32.  
  33. tagCommonAttack::tagCommonAttack(CNFBasicPerson* pReleaserU,int nSkillLV)
  34. {
  35. <span style="white-space:pre"> </span>pReleaser = pReleaserU;
  36. <span style="white-space:pre"> </span>pArrayTarget = NULL;
  37. <span style="white-space:pre"> </span>fChangeTime = pInfo->tSkillChange.fChangeTime;
  38. <span style="white-space:pre"> </span>nIsGravity = pInfo->tSkillChange.nIsGravity;
  39. <span style="white-space:pre"> </span>fOldX = pInfo->tSkillChange.fOldX;
  40. <span style="white-space:pre"> </span>fOldY = pInfo->tSkillChange.fOldY;
  41. <span style="white-space:pre"> </span>fOldZ = pInfo->tSkillChange.fOldZ;
  42. <span style="white-space:pre"> </span>fOldLength = pInfo->tSkillChange.fOldLength;
  43. <span style="white-space:pre"> </span>fOldWidth = pInfo->tSkillChange.fOldWidth;
  44. <span style="white-space:pre"> </span>fOldHeight = pInfo->tSkillChange.fOldHeight;
  45. <span style="white-space:pre"> </span>fNewX = pInfo->tSkillChange.fNewX;
  46. <span style="white-space:pre"> </span>fNewY = pInfo->tSkillChange.fNewY;
  47. <span style="white-space:pre"> </span>fNewZ = pInfo->tSkillChange.fNewZ;
  48. <span style="white-space:pre"> </span>fNewLength = pInfo->tSkillChange.fNewLength;
  49. <span style="white-space:pre"> </span>fNewWidth = pInfo->tSkillChange.fNewWidth;
  50. <span style="white-space:pre"> </span>fNewHeight = pInfo->tSkillChange.fNewHeight;
  51. <span style="white-space:pre"> </span>tTakeABeating.bIsConversely = pInfo->tSkillDamage.nIsConversely==0?false:true;
  52. <span style="white-space:pre"> </span>if(pReleaser!=NULL)
  53. <span style="white-space:pre"> </span>{
  54. <span style="white-space:pre"> </span>if(pInfo->bIsCommonSkill){
  55. <span style="white-space:pre"> </span>tTakeABeating.fDamagePoint = pReleaser->GetAttack();
  56. <span style="white-space:pre"> </span>}else{
  57. <span style="white-space:pre"> </span>//技能攻击力 = 施放者掌控力 + (技能基础攻击力 + 技能攻击力成长*技能等级)+ 施放者攻击力*(技能基础百分比倍数 + 技能成长百分比倍数*技能等级)
  58. <span style="white-space:pre"> </span>tTakeABeating.fDamagePoint = pReleaser->GetDomination() + (pInfo->tSkillDamage.fDamagePoint + pInfo->tSkillDamage.fDamagePoint_g*nSkillLV) + pReleaser->GetAttack()*(1 + pInfo->tSkillDamage.fDamagePercent + pInfo->tSkillDamage.fDamagePercent_g*nSkillLV);
  59. <span style="white-space:pre"> </span>}
  60. <span style="white-space:pre"> </span>
  61. <span style="white-space:pre"> </span>tTakeABeating.nCrit = pReleaser->GetCrit() + pInfo->tSkillDamage.nCritAdd;
  62. <span style="white-space:pre"> </span>tTakeABeating.fCritDamage = pReleaser->GetCritDamage() + pInfo->tSkillDamage.fCritDamageAdd;
  63. <span style="white-space:pre"> </span>tTakeABeating.nHitTarget = pReleaser->GetHitTarget() + pInfo->tSkillDamage.nHitTargetAdd;
  64. <span style="white-space:pre"> </span>}
  65. <span style="white-space:pre"> </span>tTakeABeating.fXTime = pInfo->tSkillDamage.fXTime;
  66. <span style="white-space:pre"> </span>tTakeABeating.nXDis = pInfo->tSkillDamage.fXDis;
  67. <span style="white-space:pre"> </span>if(pInfo->tSkillDamage.nIsDirection>0){
  68. <span style="white-space:pre"> </span>fOldX = fOldX*pReleaser->GetDirection();
  69. <span style="white-space:pre"> </span>fNewX = fNewX*pReleaser->GetDirection();
  70. <span style="white-space:pre"> </span>
  71. <span style="white-space:pre"> </span>tTakeABeating.nXDis = tTakeABeating.nXDis*pReleaser->GetDirection();
  72. <span style="white-space:pre"> </span>}
  73. <span style="white-space:pre"> </span>tTakeABeating.fYTime = pInfo->tSkillDamage.fYTime;
  74. <span style="white-space:pre"> </span>tTakeABeating.nYDis = pInfo->tSkillDamage.fYDis;
  75. <span style="white-space:pre"> </span>tTakeABeating.fZSpeed = pInfo->tSkillDamage.fZSpeed;
  76. <span style="white-space:pre"> </span>tTakeABeating.nCrickAdd = pInfo->tSkillDamage.nCrickAdd;
  77. <span style="white-space:pre"> </span>tTakeABeating.nAttackSpeed = pInfo->tSkillDamage.nAttackSpeed;
  78. <span style="white-space:pre"> </span>tTakeABeating.bIsExplodeMode = pInfo->tSkillDamage.nIsExplodeMode>0?true:false;
  79. <span style="white-space:pre"> </span>tTakeABeating.bIsPullMode = pInfo->tSkillDamage.nIsPullMode>0?true:false;
  80.  
  81.  
  82.  
  83.  
  84. <span style="white-space:pre"> </span>tTakeABeating.bIsSuctionMode = pInfo->tSkillDamage.nIsSuctionMode>0?true:false;
  85. <span style="white-space:pre"> </span>tTakeABeating.fSuctionSpeed = pInfo->tSkillDamage.fSuctionSpeed;
  86. <span style="white-space:pre"> </span>tTakeABeating.fSuctionTime = pInfo->tSkillDamage.fSuctionTime;
  87. <span style="white-space:pre"> </span>tTakeABeating.fSuctionPosX = pInfo->tSkillDamage.fSuctionPosX;
  88. <span style="white-space:pre"> </span>tTakeABeating.fSuctionPosY = pInfo->tSkillDamage.fSuctionPosY;
  89. <span style="white-space:pre"> </span>tTakeABeating.bIsOnlyDamageNotHit = pInfo->tSkillDamage.nIsOnlyDamageNotHit>0?true:false;
  90. <span style="white-space:pre"> </span>tTakeABeating.bIsSuctionSkillItemCenter = pInfo->tSkillDamage.nIsSuctionSkillItemCenter>0?true:false;
  91. <span style="white-space:pre"> </span>tTakeABeating.bIsDamage = pInfo->tSkillDamage.nIsDamage>0?true:false;
  92. <span style="white-space:pre"> </span>tTakeABeating.bIsFollow = pInfo->tSkillDamage.nIsFollow>0?true:false;
  93. <span style="white-space:pre"> </span>tTakeABeating.bIsBreakSiperarmor = pInfo->tSkillDamage.nIsBreakSiperarmor>0?true:false;
  94. <span style="white-space:pre"> </span>tTakeABeating.nHitEffectType = pInfo->tSkillDamage.nHitEffectType;
  95.  
  96.  
  97. <span style="white-space:pre"> </span>for (CNFBuffStaticInfoVec::iterator iter = pInfo->tSkillDamage.vecTargetBuff.begin();iter != pInfo->tSkillDamage.vecTargetBuff.end();iter++)
  98. <span style="white-space:pre"> </span>{
  99. <span style="white-space:pre"> </span>tagBuffInfo BuffInfo;
  100. <span style="white-space:pre"> </span>BuffInfo.nBuffID = iter->nBuffID;
  101. <span style="white-space:pre"> </span>BuffInfo.nBuffTime = iter->nBuffTime + nSkillLV*iter->nBuffTime_g;
  102. <span style="white-space:pre"> </span>BuffInfo.fBuffPoint1 = iter->fBuffPoint1 + nSkillLV*iter->fBuffPoint1_g;
  103. <span style="white-space:pre"> </span>BuffInfo.fBuffPoint2 = iter->fBuffPoint2 + nSkillLV*iter->fBuffPoint2_g;
  104.  
  105.  
  106. <span style="white-space:pre"> </span>tTakeABeating.vecBuff.push_back(BuffInfo);
  107. <span style="white-space:pre"> </span>}
  108.  
  109.  
  110. <span style="white-space:pre"> </span>nIsArmature = pInfo->nIsArmature;
  111. <span style="white-space:pre"> </span>strArmatureName = pInfo->strArmatureName;
  112.  
  113.  
  114.  
  115.  
  116. }
  1. 个人博客 www.sundaboke.com

猜你在找的Cocos2d-x相关文章