如何使用cocos2d-x制作一个山寨Angry Birds游戏:第一部分

如何使用cocos2d-x制作一个山寨Angry Birds游戏:第一部分

 

 

注:本教程由Ray博客上的教程"微创新"而来,望笑纳。(我会分三个教程来发布)

 

在此之前,我有几点需要说明一下。

首先,这是我的第一篇山寨教程,而且我将尝试使用cocos2d-x来演绎,以后Ray出的教程,我都将采用这种方式,避免不必要的版权纠纷,同时给国内广大cocos2d-x爱好者提供一些资源。

其次,所有教程里的内容我都将亲测,免得因为版本问题而导致实践起来有困难。

再次,跟以往不同的是,我不会把Ray的原文全部翻译出来,文章的编排方式也和Ray的有所不同。我会尽量以我自认为还比较合理的方式来组织教程的内容。我将追求一种比较简单,易懂,易上手的方式,让大家花最少的时间学到最有用的知识。

最后,关于开发环境的说明。我将采用的是Mac+Xcode,对于没有Mac的童鞋,用VS2010也一样的。只是一些操作界面上的差异,代码完全没有差异。这也算是cocos2d-x的一大亮点吧----跨平台!

好了,废话就不多说了,让我们开始吧!

 

 

首先,下cocos2d-x,有两种方式。第一种方式,打开浏览器,输入:http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download,然后下载cocos2d-1.0.1-x-0.9.1 @ Aug 17, 2011这个版本。第二种方式(推荐的方式),使用git。关于git的用法,大家可以上网去搜索一下。还没有安装git的童鞋可以去http://code.google.com/p/git-osx-installer/downloads/list?can=3,直接下载最新版即可。安装好git之后,打开终端(Terminal),输入下面的命令:

git clone https://github.com/cocos2d/cocos2d-x.git,然后在你的home目录下面,就可以看到一个cocos2d-x的文件夹了。打开之,目录结果如下所示:

然后,让我们开始安装cocos2d-x(如果是直接从cocos2d-x官网下载的童鞋,下面的过程也一样的。使用git的好处是,以后不用重新下载,只需要打开termical,然后cd 到cocos2d-x目录下面,然后输入命令:git pull就可以了,可以节省大量的下载时间。)安装cocos2d-x非常简单,具体过程如下:

1.打开terminal,然后cd到cocos2d-x目录下面

2. 然后输入ls,看看这个目录下面有什么东西。(这一步不是必须的)

3.输入./install-templates-xcode.sh -u –f,然后回车。

具体如下图所示:

 

4.然后会出现下面的提示:

如果你使用的是xcode3,就输入3,如果是使用xcode4,就输入4.如果两个都使用,那就什么也不输入,直接回车。安装成功的标志符是,最后出现两个done!done!如下图所示:

因为我xcode3和xcode4都安装了,所以,我选择什么也不输入,直接回车。

 

补充:我这里的截图里面出现了两个错误,不过关系不大,如果大家不想得到类似的错误信息的话,就可以输入sudo ./install-templates-xcode.sh,注意这里不再需要-u了,-u是安装到用户目录下面,-f是强制重新安装。下面是直接输入sudo ./install-templates-xcode.sh的结果图。

 

 

好了,cocos2d-x安装好了,让我们进入今天的主题吧。首先要新建一个项目,选择iOS分类下面的cocos2d-x,然后选择cocos2d_box2d,然后点击Next:

 

 

 

 

然后把工程命名CuteAPultCocos2d-x,如下图所示:

然后点Next,接着出现下面的屏幕:

 

你可以新建一个文件夹,专门用来保存你所有的游戏项目。这里,我使用的是IosGameRepository,记得把下面的Source Control复选框去掉,因为,我将教大家手动使用git来做源码管理。最后点击Create,这样我们的工程就创建好了。运行一下,你会看到下面的截屏:

 

 

接下来,我将教大家使用git来做本地的源代码管理工作。打开ternimal,然后cd到你的IosGameRepository目录下面去,然后cd到CuteAPultCocos2d-x目录下面:(下面是我的操作截屏)

 

然后开始输入下面的命令来创建一个新的git仓库:

然后你会看到一大堆的输出,然后你的仓库就建立好啦:)这时,有的童鞋可能就要问了,花这么大力气做这些干什么,我要学的是"怎么制作山寨AngryBirds!我要用它赚大钱!"。别急,接下来,我向大家演示一下git仓库的神奇用处。有同学不小心用xcode删除了一个文件,然后此文件并没有出现在垃圾箱中,然后再也找不到了,哭着到处找人求救。。。别怕,有了git,你再也不用为这种事情烦恼了,呵呵。首先,打开xcode,然后在HelloWorldScene.cpp上面右键,在弹出菜单中选择delete,然后会出现下面的屏幕:

如果你选择Remove Reference Only,那么文件并没有删除,你打开工程所在的文件夹,还是可以看到。只是在Xcode的项目管理里面看不到了,你还是可以通过右键点工程名字,然后添加进来。这里我们选择Delete,然后你再打开工程目录,看看是什么情况:

 

这时,你发现在HelloWorldScene.cpp真的没有了,于是,你去回收站里去找找:

 

555555555555555。。。。。空空如也!

别怕,我们有git!打开ternimal,输入git status,可以查看当前仓库的状态:

 

 

然后,有没有看到deleted:CuteAPultCocos2d-x/Classes/HelloWorldScene.cpp这条消息,这表示你刚刚删除了此文件,现在我们要把这个文件找回来。接下输入命令:git checkout CuteAPultCocos2d-x/Classes/HelloWorldScene.cpp

现在,刚刚删除的这个文件又回来啦,哈哈,牛叉吧!现在再把此文件添加进去,右键点Classes,然后点Add Files to "CultAPultCococs2d。。。",如下图:

然后把刚刚这个文件添加进去。

好了,这里,我只是向大家演示了一些最基础的git的用法,如果大家git感兴趣的话,可以上网再查一些资料学习一下。推荐大家看http://progit.org/book/ 上面的内容。 最后,让我们在terminal中输入git tag ProjectTemplate,给现在版本打个标签。这个功能可以方便写教程的时候出多个版本供读者下载,而不用保存每个版本的副本。如果要得到某个tag,git checkout –b ProjectTemplate,然后再把工程目录下的文件打包就是ProjectTemplate这个版本啦。如果你后面做了修改,比如Final版本,就先git tag Final,然后git checkout –b Final。但是,记得在每次打tag之前,先用git stage,git commit –m '本次修改的消息'。如果这里现在还看不太懂,先不管,跳过去。后面的文章中,我会穿插这些内容,你照着做就可以了。

注意:每次切换版本的时候,最好关闭xcode。如果不小心没有关闭的话,打开xcode的时候,可能出现schema丢失的情况,这时候,只需要再关闭xcode,重新再打开即可。还有一点,如果大家对于这种命令行操作方式感觉不舒服的话,可以下载Tower,它是一个图形化的使用git的工具,使用起来非常方便。大家可以上网搜索一下,找个破解版。

 

 

Ok,现在我们要开始做山寨小鸟游戏啦!

 

 

一、清除模板

    首先,打开HelloWorldScene.cpp,然后把下面的代码删除:

  1. void HelloWorld::addNewSpriteWithCoords(CCPoint p)
  2. 在HelloWorld::HelloWorld()方法中)删除//setIsAccelerometerEnabled( true ); 我这里用的注释的方法。
  3. void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event)

 

最后我们把下面的代码删除:

时,别忘了把HelloWorldScene.h中的两个函数的声明注释掉,如下图所示:

 

这时编译并运行,然后我们会得到下面截屏幕:

 

接下,打开terminal,输入git stage *,然后输入git commit -m 'clean up'。

 

这时候 输入命令:git tag CleanUp 我在后面紧接着输入了git tag –l,这个命令是查看所有的tag。现在我们有两个tag。还记得我们之前的项目吗,点击鼠标,可以掉下来很多方块。现在我们已经把代码注释掉了,有些还删除掉了。我们要把之前的东西找回来。接着,我向大家演示一下tag的妙用。

 

首先,我们把工程关掉,因为我要来个"时光旅行",回到之前我们的版本。依次输入命令:

1. git checkout -b CleanUp (这句话的意思是新建一个分支)

2. git status (查看一下当前仓库的状态)如果输出:

# On branch ProjectTemplate

nothing to commit (working directory clean)

那么就跳到第3步

如果没有,就输入

git stage *

git commit –m 'some message'

如下图所示:

 

3.git checkout ProjectTemplate

 

这时候,你再打开项目并运行,你会得到下面的截图:

 

 

然后关xcode,这时输入git status:

刚刚我们什么也没更改,但是,还是显示有更改,信息如下:

 

这是什么原因呢?因为xcode每次启动的时候都会自动创建xcuderdata目录,们不用管它,直接git stage *,

然后git commit –m '消息'就可以了,后面记得带-m 加入信息。

 

然后git checkout CleanUp,然后再打开工作并运行,就会有如下截图:

 

 

 

 

如果你又想回到之前的版本,你可以git stage *,

然后git checkout ProjectTemplate。

这时候,你再打开工程,运行之,你会看到刚开始时候的工程了:

 

 

 

讲了这么多,感觉好复杂啊。中间有些过程可能还有些细微的问题,我给大家总结一下git的用法吧。

 

git init初始化一个git仓库

git add * 把当前目录下所有的文件(含文件夹)加入到仓库中,仓库里的文件有任何的修改,git都会知道。

git status 查看当前工作区的状态

git commit 提交修改到工作区中

git tag tagname 创建一个tag,如果加参数l就是列出所有的tag,加-d 就是删除相应的tag

git checkout branchName就是切换分支

git branch branchName就是创建一个分支,名字为branchName

git checkout –b branchName 等价于下面两句

1.git branch branchName

2.git checkout branchName

git stage * 确认当前修改,只有确认了修改才能提交到仓库中去

git add filename,把某个文件添加进仓库

git rm filename,把某个文件删除

更多有关git的用法,请大家参考progit.org吧。大家也可以上网搜索一下git的用法。

声明:如果大家不喜欢命令行的方式,推荐搜索tower,下面我给出tower的下载地址,里面含破解方法:http://dl.dbank.com/c0zzihyb5o

 

非常抱歉,我的处女山寨之作变得如此之又臭又长。如果有什么问题,请留言告诉我。我的git和cocos2d-x都刚开始学。以后大家一起探讨,一起进步。

 

要留言?请点击传送门

 

著作权声明:本文由 子龙山人(http://www.cnblogs.com/andyque) 原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

posted on 2011-09-30 16:35  子龙山人  阅读(10183)  评论(7编辑  收藏  举报