说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记
OK,到昨天为止,我们已经将游戏基本上写完了,这里本来就是别人开源的东西,我这里重写,当然要发布源代码。那么这里有两种方式:
第一种:将我执行成功的整个项目打包,VS2012+win7下的,这样的方式就比較大,可是能够打开打开 Run/proj.win32/Run.sln 就能够啦
另外一种:就是我仅仅打包 Resource 和 class里面的东西。。可是这里会遇到 Extension 的相关问题,由于我用了button,这个解决方法在前面的 cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第五步--button控制主角Jump&Crouch 其中有具体解决方法
或者留下邮箱
已经修复bug,而且共享下载地址已经改动-----2014-8-2
链接: 整个项目 204m ---------- 资源&代码 1.18m
注意一个地方:PlayScene中的crouchEvent函数中,我们须要加入�一个推断, 在m_runner->getState() == running 的情况下 再运行 m_runner->Crouch();m_runner->setPosition(.......);
不然在跳起来的情况下,buttonCrouch,主角尽管不会Crouch,但是会 setPosition 改变位置。。。。。。。
仅仅是在昨天另一个小问题,本来想昨天攻克了,然后一起在这里给出。谁知道。。。。哎哎。。问题就是:
我们游戏中,主角撞到岩石,然后切换到GameOver 场景,这个场景中有一个button,reStart。又一次開始,按下去回调函数是切换为游戏场景。。。可是button会失效。。。。可是这里并非button写出问题啦,我在AppDelegate中,用GameOver场景,然后button是能够切换到游戏场景。。游戏结束切换到MainScene之后,startbutton又失效啦。。。这里也问了不少人,可是因为个人描写叙述不清,所以没有得到解决,这里希望下载源代码的各位能找到解决方法,与我以及大伙分享下。。。
哈哈哈,仰天长啸。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>
新的完整project项目已经打包,上面的下载地址也都更新啦......啦啦啦,最终能够安心的弄下一个游戏实例啦
总结:事实上学习过程中,个人觉得最有效的方法就是:学习了知识点,然后用实例练习,并且在实例练习其中。我们应该是先了解设计思想,然后自己先试着实现,过程中可能会遇到非常多问题,你能够查看源代码,单独抽离部分功能成一个样例測试,或者百度&问大牛们。。。。而不是一有点问题就到处问,用我们一位老师的话来说就是:学会自学将让你受益终生。
OK,个人愚昧观点,欢迎指正与讨论