文档章节

《兔子大战转基因》的副产物 -- 两个cocos2dx游戏的源代码分享

萝卜胡
 萝卜胡
发布于 2013/01/05 12:13
字数 733
阅读 9345
收藏 12

之前,我一直没有打算过要搞手机游戏。直到最近发现自己还没有能力做一个好玩的PC游戏,而又想有点满足感,所以还是决定先尝试学一下手机游戏开发,了解一下一个游戏的基本架构。

于是,在前一段时间里,我都在玩小游戏,希望找点创作灵感。当然,也同时开始学习手机游戏开发。在网上找了好几篇关于cocos2dx的文章来看,发现这框架还是比较易用的。所以,我决定开始动手做个小游戏了。鉴于没有美工,我决定先克隆(约等于山寨)一个现有的小游戏 -- 《兔子大战转基因》(http://wanga.me/25523)。它是一个flash游戏。我想,把它做成一个手机游戏还是不错的。于是,我下载了这个flash游戏,用反编译工具提取了里面的部分图片素材(本人表示完全尊重原著的版权,提取的这些素材仅供本人学习用)。倒腾了几天,做出了如下的初步结果:

       

但是,总感觉自己的代码充满臭味。。。结构非常不好。我尝试了重构,但感觉还是很差。万幸的是,我在此时忽然找到了一份比较完整的cocos2d-xna的例程。里面教会了我关于scene的概念,还有GameRoot这个概念等等。

 

 

这个例程是nowpaper的Sanguo Commander,是基于cocos2d-xna + c#的,我将它改成了cocos2dx + c++了。

原教程链接如下:

http://www.cnblogs.com/nowpaper/archive/2012/09/11/2680852.html

我改写后的代码如下:

(如果侵犯了原作者的权益,请联系我,我必定尽快删除改写的代码的下载链接)

http://files.cnblogs.com/tetris/SanguoCommander.rar

apk包:

http://files.cnblogs.com/tetris/org.cocos2dx.sanguocommander.SanguoCommander.apk

(其中一个细节:原文章中有一个部分用到c#中的dictionary,我将它改成了使用一个普通的数组了)

 

 

另外一个例程是有Allen Tan写作,由eseedo翻译的类似Scott Pilgrim的2D横版格斗过关游戏。他是基于cocos2d + obj-c的。

原文链接为:

http://www.raywenderlich.com/24155/how-to-make-a-side-scrolling-beat-em-up-game-like-scott-pilgrim-with-cocos2d-part-1

翻译后的链接为:

http://blog.sina.com.cn/s/blog_4b55f6860101a9b7.html

我改写后的代码下载链接为:

(如果侵犯了原作者的权益,请联系我,我必定尽快删除改写的代码的下载链接)

http://files.cnblogs.com/tetris/PrompaDroid.rar

apk包:

http://files.cnblogs.com/tetris/org.cocos2dx.pompadroid.PompaDroid.apk

(由于这个改写得比较粗糙,有部分代码不是由原教程逐行翻译过去的。例如,虚拟控制手柄我是用了sneaky库。并且,不知道为什么,batchnode那里好像用不了,我就直接向layer里addchild了。并且后面音效那部分我也没加进去)

 

 最后提一下,我用的cocos2dx的版本是cocos2d-2.0-rc2-x-2.0.1

本文转载自:http://www.cnblogs.com/tetris/

共有 人打赏支持
萝卜胡
粉丝 22
博文 7
码字总数 7083
作品 0
广州
私信 提问
加载中

评论(18)

sidney9111
sidney9111
没想到13年中我就有接触到cocos2dx了?都忘了这回事了,想想去年底进入游戏行业发生的事情实在是太漫长了,又感觉时间过得很快,想想现在带着怨恨用quick-cocos2dx,明知道不好,却又希望从底层源代码提升自己,也确实是很奇妙的事情。想想国内这个游戏行业明显就是畸形的,但又不得不抱希望能分一杯羹,做人真是矛盾和奇妙呀
又带刀
又带刀

引用来自“萝卜胡”的评论

引用来自“又带刀”的评论

引用来自“萝卜胡”的评论

引用来自“又带刀”的评论

怎么提取游戏里面的图片素材,我想做个完整的

这个游戏的原版是一个flash游戏。所以,你知道知道一个关键词就行“swf反编译”。具体可以上网查一下,有swf反编译工具。不过这其实是侵犯了原作者的权益的。但是如果是在学习的过程用一下作为临时的素材,应该没什么关系。

能把完整图片素材给我吗,我弄下半天还是弄不出

我也没有整套的啊。印象中当时也只是反编译成了一帧帧的关键帧,就是弄不成图片。最后是用截图+抠图的暴力方法来做的……

唉,只弄出音效,其他的都弄不出
萝卜胡
萝卜胡

引用来自“又带刀”的评论

引用来自“萝卜胡”的评论

引用来自“又带刀”的评论

怎么提取游戏里面的图片素材,我想做个完整的

这个游戏的原版是一个flash游戏。所以,你知道知道一个关键词就行“swf反编译”。具体可以上网查一下,有swf反编译工具。不过这其实是侵犯了原作者的权益的。但是如果是在学习的过程用一下作为临时的素材,应该没什么关系。

能把完整图片素材给我吗,我弄下半天还是弄不出

我也没有整套的啊。印象中当时也只是反编译成了一帧帧的关键帧,就是弄不成图片。最后是用截图+抠图的暴力方法来做的……
又带刀
又带刀

引用来自“萝卜胡”的评论

引用来自“又带刀”的评论

怎么提取游戏里面的图片素材,我想做个完整的

这个游戏的原版是一个flash游戏。所以,你知道知道一个关键词就行“swf反编译”。具体可以上网查一下,有swf反编译工具。不过这其实是侵犯了原作者的权益的。但是如果是在学习的过程用一下作为临时的素材,应该没什么关系。

能把完整图片素材给我吗,我弄下半天还是弄不出
又带刀
又带刀

引用来自“萝卜胡”的评论

引用来自“又带刀”的评论

怎么提取游戏里面的图片素材,我想做个完整的

这个游戏的原版是一个flash游戏。所以,你知道知道一个关键词就行“swf反编译”。具体可以上网查一下,有swf反编译工具。不过这其实是侵犯了原作者的权益的。但是如果是在学习的过程用一下作为临时的素材,应该没什么关系。

临近期末我想拿这个作为期末项目而已
萝卜胡
萝卜胡

引用来自“又带刀”的评论

怎么提取游戏里面的图片素材,我想做个完整的

这个游戏的原版是一个flash游戏。所以,你知道知道一个关键词就行“swf反编译”。具体可以上网查一下,有swf反编译工具。不过这其实是侵犯了原作者的权益的。但是如果是在学习的过程用一下作为临时的素材,应该没什么关系。
又带刀
又带刀
怎么提取游戏里面的图片素材,我想做个完整的
Yacos
Yacos
谢谢楼主的分享,顶一下16
xiaoNiuNew
xiaoNiuNew
萝卜胡,不错的小伙子。
sidney9111
sidney9111

引用来自“萝卜胡”的评论

引用来自“avi9111@163.com”的评论

如何把你的文件添加到已有的解决方案?原作者太C#, 我打开他的sln,表示项目不支持,我的vs2010少了某些东西,楼主的太c++,我看了你的目录,表示不知道怎么用vs2010添加你提取的文件,我介于c#和C++之前,只能很原始地一个个文件手动添加了

首先要配置好cocos2d-x的开发环境。然后应用cocos2d-x模板来建立一个工程,再将附件中的classes目录下的源文件拷贝到刚才新建的工程的classes目录下,将resource目录下的资源文件拷贝到新建工程的resource目录下。然后回到vs,右击source目录,选择添加已有文件,将刚才的classes文件添加到工程。

谢谢,刚出去吃东西了,试试,不过这就是手动添加了,还要手动改下main.app,因为cocos2d-x模版已经有一些代码,用不上,要换
ps.对于c#人,需要*.sln或者*.cropj,文件-->新建项目-->已有项目
Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上

感谢听D同学赞助的Demo。 那怎样让它运行在vs中呢: 1 使用cocos2d-x-2.2toolsproject-creator文件夹中的create_project.py脚本,生成一个demo。 2 拷贝Classes和Resources文件夹到刚生成的d...

懒骨头
2013/12/09
0
0
Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin

Android开发者做cocos2dx最大的绊脚石,不是c++,而是环境的搭建... 骨头也是费了半天劲才终于在真机上看到了那个类似猕猴桃的头,这里简单记录一下。 环境:(算比较新了2013.11.17) coco...

懒骨头
2013/12/09
0
0
Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应

上节说到cygwin下成功编译出so文件,下面我们要把游戏运行在android上。 开始干活! 其实步骤可以参考 Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上 1 用eclipse打...

懒骨头
2013/12/09
0
0
Cocos2dx游戏开发系列笔记4:怎样新加一个Scene类?

有点晚了,眼睛开始痒痒了,赶紧记录点东西 刚请教了sw同学,跟听D也扯了会,苦命的孩子,今晚他们游戏发新版,前端必须加班,骨头好是羡慕。。。 前几个笔记的例子都是zai一个Scene.cpp里完...

懒骨头
2013/12/09
0
0
Cocos2dx游戏开发系列笔记2:一个刚创建的cocos2dx中的demo里都有什么

烦人的环境终于ok了,改了改文本,换了换图片资源,还是能在手机里运行。ok,关了Eclipse,去vs中看看吧。 虽然是根老骨头了,但还真没怎么用C++,以前接触过点Java的开发框架,估计大差不差...

懒骨头
2013/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 我都想和他们组成一个家庭了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @Sharon啊 :分享王菲的单曲《流年》有生之年狭路相逢终不能幸免,手心突然忽然长出纠缠的曲线。 《流年》- 王菲 手机党少年们想听歌,请使劲...

小小编辑
今天
176
6
CentOS7利用systemctl添加自定义系统服务

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下. CentOS7的每...

linuxprobe16
今天
1
0
RabbitMQ入门

RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都非常的优秀。是当前最主流的消息中间...

watermelon11
今天
19
0
今天的学习

自动加载:方法一 function __autoload( $className ){在这里,完成加载B这个类文件的工作。}class A{} //这是一个类$a1 = new A(); //这里没有自动加载的发生,因为A这个类...

墨冥
今天
4
0
印刷工艺步骤

印刷厂从收到订单到交付整个流程,一般涉及到以下步骤 1.设计(经过软件如cdr,psd,ai等等设计需要印刷的名片,宣传单,画册等物料); 2.排版拼版(在电脑软件这区域完成); 3.出版、出硫...

focusone
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部