cocos2d-x 3.0游戏实例学习笔记 《跑酷》 完结篇--源码放送

来源:互联网 发布:淘宝卖家申请小二介入 编辑:程序博客网 时间:2024/06/11 02:48

说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本重写的,目前我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记

OK,到昨天为止,我们已经将游戏基本上写完了,这里本来就是别人开源的东西,我这里重写,当然要公布源码。那么这里有两种方式:

第一种:将我运行成功的整个项目打包,VS2012+win7下的,这种方式就比较大,但是可以打开打开 Run/proj.win32/Run.sln 就可以啦 

第二种:就是我只打包 Resource 和 class里面的东西。。但是这里会遇到 Extension 的相关问题,因为我用了按钮,这个解决方法在前面的 cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第五步--按钮控制主角Jump&Crouch 当中有详细解决方法

或者留下邮箱

已经修复bug,并且共享下载地址已经修改-----2014-8-2

链接:  整个项目 204m    ----------      资源&代码 1.18m

注意一个地方:PlayScene中的crouchEvent函数中,我们需要添加一个判断, 在m_runner->getState() == running 的情况下 再执行 m_runner->Crouch();m_runner->setPosition(.......);  不然在跳起来的情况下,按钮Crouch,主角虽然不会Crouch,可是会 setPosition 改变位置。。。。。。。 

只是在昨天还有一个小问题,本来想昨天解决了,然后一起在这里给出。谁知道。。。。哎哎。。问题就是:

我们游戏中,主角撞到岩石,然后切换到GameOver 场景,这个场景中有一个按钮,reStart。重新开始,按下去回调函数是切换为游戏场景。。。但是按钮会失效。。。。但是这里并不是按钮写出问题啦,我在AppDelegate中,用GameOver场景,然后按钮是可以切换到游戏场景。。游戏结束切换到MainScene之后,start按钮又失效啦。。。这里也问了不少人,但是由于个人描述不清,所以没有得到解决,这里希望下载源码的各位能找到解决方法,与我以及大伙分享下。。。

哈哈哈,仰天长啸。bug解决啦,其实就是在碰撞检测中添加事件派发的时候出了问题:

错误的代码修改:

<span style="font-size:14px;">void PlayScene::onEnter(){Layer::onEnter();auto contactListenner = EventListenerPhysicsContact::create();//CC_CALLBACK表示回调函数的参数个数contactListenner->onContactBegin = CC_CALLBACK_1(PlayScene::onContactBegin,this);//dispatcher = Director::getInstance()->getEventDispatcher();//这里不再使用自己弄的事件派发//_eventDispatcher应该是一个时间派发的全局变量。。全部给它管理就是的_eventDispatcher->addEventListenerWithSceneGraphPriority(contactListenner,this);}</span>

新的完整工程项目已经打包,上面的下载地址也都更新啦......啦啦啦,终于可以安心的弄下一个游戏实例啦


总结:其实学习过程中,个人认为最有效的方法就是:学习了知识点,然后用实例练习,而且在实例练习当中。我们应该是先了解设计思想,然后自己先试着实现,过程中可能会遇到很多问题,你可以查看源码,单独抽离部分功能成一个例子测试,或者百度&问大牛们。。。。而不是一有点问题就到处问,用我们一位老师的话来说就是:学会自学将让你受益终生。

OK,个人愚昧观点,欢迎指正与讨论

3 1