MainScene是拇指接龙游戏的主游戏场景文件,拥有近5000行代码。

说实在的,实现自cocos2d-x 2.x版本向当下最新的3.8.1版本的升级过程,其中涉及的技术不是一下能够说明的。有些是形式上的简单修改,更多的则是性能上的提升相应的修改。

简单总结一下主场景文件MainScene的升级工作。主要集中在如下几个方面:

1.扑克拖动相关事件的升级修改:

这一点在网络上已经有不少细致的资料,在此不赘述,请参考后面的引文。

如今的手指移动事件操作起来要比2.x时期简化多了。

2. CCArray向Vector<T>数据结构的升级,基本感觉比较流畅,没有大的障碍。

但是,仅有一点需要特别注意:在CCArray时代,removeLastObject(false)一句在Vector<T>下没有直接的对应。

removeLastObject(false)一句的意思是从数组中删除相应结点,但是内存中对应数据结构继续保留。那么在Vector<T>下如何实现的?

我的办法大致如下,请兴趣的朋友可以参考:

OLD:

    Cells[col]= (Card*)TableauPiles[whichColumnForCC]->lastObject();Card* t2=Cells[col];Cells[col]->setPosition(m_pCurNode->getChildByTag(10006+col)->getPosition());m_pCurNode->reorderChild(Cells[col],++zIndexForAll);Cells[col]->setPosition(m_pCurNode->getChildByTag(10006+col)->getPosition());m_pCurNode->reorderChild(Cells[col],++zIndexForAll);//从原来位置清除扑克,但是并没有释放内存;否则,存在野指针!!!//TableauPiles[whichColumnForCC]->removeLastObject(false);//9-11

NEW:

      Card* tmpCard = TableauPiles[whichColumnForCC].back();Card* card_2015 = new Card();card_2015->setCurrentSuit(tmpCard->getCurrentSuit());card_2015->setNumber(tmpCard->getNumber());card_2015->loadTexture(tmpCard->getCurrentSuit());card_2015->setPosition(m_pCurNode->getChildByTag(10006 + col)->getPosition());Cells[col] = card_2015;Card* t2=Cells[col];m_pCurNode->reorderChild(t2, ++zIndexForAll);//从原来位置清除扑克//TableauPiles[whichColumnForCC]->removeLastObject(false);//modified on 9-11TableauPiles[whichColumnForCC].popBack();

3.这个一个较大的坑,其实关键还是在于我对于3.x版本的API没有全面分析所致。例如,我在感觉部分修改结束后,编译时遇到如下所示错误:

双击上述任何一个错误,光标停留到functional文件中,而此文件是vc2013的一个标准头文件。从上面几乎任何一个错误提示在网络中搜索,几乎没有任何线索,至少到目前为止,我搜索到的几乎都是风马牛不相及的。

因为,这个文件太长,而此前我的2.x版本顺利调试通过。结合上面提供的仅有的线索(即括号中的文件mainscene.cpp)。我断定肯定是MainScene.cpp升级过程中,由于部分结合VS2013查找替换修改,可能导致部分错误,而且这种错误很可能与C++ 11新特性相关(从C++ 11知识及上面大量出现的模板形式可以断定)。

无奈之下,我硬着头皮决心一点点把上述文件完全升级到3.x表达方式。在没有彻底弄明白是哪些地方出现上述问题的情况下,升级结束,上述错误在重新编译后完全消失。

而此前,我有好几个小时悄悄地消失了......

其实的没有大问题了,结论是:如果立足于cocos2d-x c++开发的话,STL和C++ 11特性是必修课!

拇指接龙游戏升级记录03(升级MainScene.cpp)相关推荐

  1. 拇指接龙游戏从WIN32向Xcode 4.5移植过程问题记录

    当前的测试环境是: 1,VMware Workstation 9.0.2 2, Windows 7(64 bit) 3,(通过VMware安装)Mac OS X 10.8(64 bit)+Xcode ...

  2. EXSi6.7升级7.03失败记录

    受ESXi主机CVE-2021-21972漏洞影响,计划将EXSi主机版本6.7U2升级到7.0.3,VCSA版本7.0.3.00100升级至最新版. ESXi主机使用OEM版本VMware-ESXi ...

  3. 2021.03.17 pokémon小游戏开发记录与周总结

    2021.03.17 pokémon小游戏开发记录与周总结 此篇仅包含部分项目代码,只是个人的学习总结. 文章目录 2021.03.17 pokémon小游戏开发记录与周总结 前言 一.前期准备 二. ...

  4. sequelize V5 升级记录

    最近把项目中的 sequelize 由 4.38.0 升级到了 5.8.7,以下是升级记录 本文地址: shanyue.tech/post/sequel- 01 删包 从 package.json 中 ...

  5. python爬虫的技能_python-爬虫技能升级记录

    ====== python-爬虫技能升级记录 ====== ===== (一)感知爬虫及爬取流程 ===== 从简单存取一个页面到 爬取到大量的定量数据,对技术要求更高,以百度百科数据爬取为入门练手项 ...

  6. P94-好玩游戏的物品清单升级-列表到字典的函数

    课后题 # python编程快速上手 P94 好玩游戏的物品清单升级 列表到字典的函数def displayInventory(dict1): # 不用什么符号来特殊标记dictprint('Inve ...

  7. 点晴免费OA系统的2017年升级记录

    点晴免费OA系统的2017年升级记录 点晴OA系统不但是永久免费,不限用户数,功能全开放,而且还提供免费客服咨询和免费升级服务,免费OA的系统升级并不是隔几个月才发布一次升级包,优化点晴OA系统不太主 ...

  8. 极品飞车ol服务器维护,《极品飞车OL》8月3日服务器更新维护 游戏内奖励全面升级...

    导 读 极品飞车OL在8月3日进行了一次重要版本的更新,更新后奖励会全面升级,那这次更新内容是什么呢,今天小编就给大家带来极品飞车OL8月3日服务器更新维护内容,大家一起来看看吧. 更新内容: 一.友 ...

  9. Python3.10升级记录

    2021.10.4日,Python3.10正式版发布了,为了使用新的match语法,2021.10.8将Python3.7升级到了Python3.10,升级记录如下: 1.官方安装包: 因为不是3.X ...

最新文章

  1. 2018年终总结之AI领域开源框架汇总
  2. python 多个变量赋值
  3. 设备树与驱动的关系_裸机程序如何驱动硬件?
  4. 科大星云诗社动态20201122
  5. linux sed 空间模式,整理:SED的模式空间与缓冲区及n,N,d,D,p,P,h,H,g,G,x解析...
  6. Python学习 :面向对象 -- 成员修饰符
  7. C#基础——C#入门
  8. 数据分析数据可视化(四)
  9. Spark API 之 cogroup 使用
  10. 升级Spring Boot内嵌Tomcat版本
  11. idea中热部署插件JRebel的激活
  12. 【稀饭】react native 实战系列教程之项目介绍
  13. mysql获取字符串长度函数
  14. Meltdown攻击
  15. 音频质量的评价方法:简单梳理
  16. jmeter安装(jmeter安装配置)
  17. 安装MongoDB报错Verify that you have sufficient privileges to start system services的解决方法
  18. 普通大学,多年功能测试,3年进入小米,软件测试如何有效的学习?
  19. python调用perl 乱码 ‘perl‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���
  20. 装配图中齿轮的画法_一级圆柱齿轮减速器装配图的画法

热门文章

  1. JVM 出了问题 EXCEPTION_ACCESS_VIOLATION
  2. CSS text-transform 属性
  3. Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化
  4. 《Unity 游戏案例开发大全》一6.5 游戏主场景
  5. 一些mysql innodb的建议
  6. 泛前端知识图谱(Web/iOS/Android/RN)
  7. linux串口驱动分析
  8. BZOJ 1503 郁闷的出纳员(splay)
  9. excel中会计专用格式问题_解决方法
  10. vMA学习笔记之一:将vMA加入域