首先我要声明,我也是刚学了游戏编程只有几个月的时间,全凭自学,所以也跳进、跳出过了不少的坑,这里写下一些简单的经验总结献给初入2d游戏开发的朋友们,如果有讲得不对的地方,欢迎指出错误,谢谢
这是我为了VOIP班的同学们讲解游戏开发而写的稿子,献给对游戏开发感兴趣的同学们,因此有些东西是在当堂展示并没有放到这篇文章里面,如果读者有疑问,欢迎留言
如标题所示,我们以实际项目来讲解游戏开发的入门。
《天天酷跑》这游戏很多人都玩过吧,腾讯可是靠它赚了不少的钱吧,那时候我看大家玩的时候,身边同学好多都是花钱在买道具,买钻石,可见其火爆程度。可是大家在玩游戏的时候有没有想过这个游戏是怎么做出来的呢?或者说你想过没有,如果让你来制作这样一款游戏,你该怎么做呢?
这里我就以这个问题为线索,为大家大概介绍一下游戏开发的一些细节的东西。
一、游戏引擎
说到游戏引擎,经常玩游戏的同学可能会知道一些鼎鼎大名的引擎,比如寒霜,虚幻,Cryengine等等,这些都是在pc游戏领域的引擎中的王者,而我今天要为大家介绍的则是手机2d游戏领域的王者,cocos2d-x.
手机游戏可以分为2d和3d游戏两种,如我刚才所说的《天天酷跑》这种游戏就是被称为2d游戏,而诸如《神庙逃亡》这类的游戏就是被称为3d游戏,我们新手游戏开发呢选择2d的游戏比较容易入门。
我大概介绍一下cocos2d-x这款游戏引擎。首先,这是一款开源引擎,采用了比较宽松的开源协议,任何个人或者组织都可以自由的修改和使用它,实际上也正式由于这一点,这款游戏引擎在中国受到了非常多的中小游戏开发公司的青睐,也造就了它在今天的这种辉煌的局面。举几个例子,比如《捕鱼达人》系列,《秦时明月》,《我叫MT》,《开心消消乐》这些。
这款游戏其次的一个主要特点就是跨平台。什么是跨平台呢?大家都知道,现在的软件平台有好多种,比如Windows,android,ios,Linux等等,如果我们没有选择一款跨平台的游戏引擎,那么我们就需要为每个平台去编写各自相应的代码,但是,现在有了跨平台的cocos2d-x,我们就可以只编写一套代码,然后它就可以在各个平台上运行。关于跨平台的内部细节和这款引擎的其他资料,有兴趣的同学可以自己在网上搜索了解。
其实简单来说,引擎就好比是一个代码库,我们在开发游戏的时候去调用它,就好像在c语言里面,我们调用printf()函数就能在窗口打印出文字一样,我们知道怎样让它显示出不同的样式,但是我们不去关心这个函数内部是怎样把文字打印到窗口上的。游戏引擎的作用就是让编程的人把时间和精力更多的花在游戏本身,比如我们会去思考怎样修改代码让主角的跑得更快,更不会去想怎样怎样让主角动起来,因为这个已经被引擎给实现了,你只需要把相应的参数传给相应的函数就好了。这就是使用游戏引擎的好处。
二、编程语言
目前的这款游戏引擎还没有发展到可以不用写代码就能做出游戏的程度(当然这是可以实现的),所以我们要使用这款引擎做游戏还是需要对编程语言有一定的基础。cocos2d-x使用的语言好几种,我们这里只介绍c++。我曾经了解过并简单使用了一些语言,以我的拙见,c++相比java,c#这类同类型的语言,它是最难的一门语言。但是,说它难是因为c++有很多让人难以捉摸的特性,特别容易出错,可是在使用它来编写基于cocos2-x的游戏的时候,那些晦涩的我们全都没有去用,所以大家不用产生畏惧的心理。
那么我们要把c++掌握到什么程度就可以自由的编写游戏了呢?
掌握好一点就行了,就是深刻理解面向对象的概念。实际上面向对象的概念也非常的重要,在几门主流的重量级语言,如java,c#,c++这些语言里面,面向对象都是一个重点,而且,我想说的是,他们这三们语言的面向对象的概念几乎都是类似的,因为java是收到了c++的启发而发明出来的,c#则是完全照搬了java的许多特点。所以呢,只要熟悉了其中一门语言,另外两门自然也就通了,即使有问题也不会太大。
重要的事情说三遍哈:
面向对象,面向对象,面向对象
三、模仿《天天酷跑》需要的其他的准备工作
1.美术资源
要完成一款游戏,仅仅是编程那绝对是不够的,我们还需要美工,策划等等的东西,缺一不可。但是,由于我们是去模仿一个游戏,游戏的策划什么的不用担心了,直接按照《天天酷跑》的游戏方式来。然后美术资源也不用担心了,网上搜一下就能找到原版的美术资源,连同背景音乐一起打包赠送。我会在本文结尾的地方给出下载连接哈。
2.TexturePacker 图片打包工具
图片打包工具,就是一款小工具,可以把许多小的图片合成一张大的图片。之所以这样做,是因为把一张大的图片加载进内存要比把许多小的图片加载进去所占内存要小得多。具体原理呢不复杂,大家可以搜索一下。
3.tiled 地图编辑器
我想好好讲一下地图编辑器的作用。
由于由于这款引擎的可视化工具发展得并不好,所以我们在编程的时候经常需要比较繁琐的设定各种角色的位置。在引擎里面是将整个屏幕分为了x轴和y轴,左下角是坐标的原点,也就是(0,0)。假如我们需要设定我们的英雄(在游戏开发里面我们通常称主角为英雄,英文Hero,设设定所有会动的东西,比如人物,怪兽,鸟,狗之类的叫做精灵,英文名Spirite)的初始位置是在屏幕的中央,我们通常需要写这样的代码
hero-&setPosition(300,300);
其中,变量hero指的是英雄。假如屏幕的宽是600,高也是600.
所以上面这句代码连起来的意思就是将hero这个人的位置设定为屏幕的长度和宽度的一半,也就是屏幕中央了。
于是就产生了一个麻烦了,我不一定每次都要设定位置实在中央啊,假如我要把位置设定在左边偏下呢,该选择(200,100)还是(150,250)或者是其他的坐标呢?那就一个坐标一个坐标的试吧,改一下坐标,然后运行一下游戏,看看位置对不对,不对的话又调整一下坐标,再运行下看看对不对,一般还是不对的,毕竟才试了两三次,还要调好多次呢,不要问我是怎么知道的,反正我是受够了这种原始的方式
所以我们的主角,地图编辑器tiled出现了。
使用tiled,我们可以用它新建一张地图,然后把需要的背景图片和地面等等图片直接放进去,使用鼠标调整位置,并且我们可以在这个地图里面做上各种标记,我们给这些标记取上不同的名称,比如“hero_first_place”,然后我们在程序里面加载这张地图,读出“hero_first_place”这个标记,标记本身自带位置信息,所以我们读到这个标记之后就能知道相应的x轴和y轴的值。于是我们想调整英雄出场位置的话,只需要使用tiled这个软件在地图里面用鼠标拖动这个标记到合适的位置就行。
下面我打开这个工具给大家实际演示一下。
4.集成开发环境
既然我们明确是要写代码的,那么我们就必须选择一款优秀的代码编辑调试运行的工具。cocos2d-x官方推荐的c++语言的IDE是Visual Studio,想必大家对于这款宇宙最强IDE都有所耳闻吧。
我推荐使用 visual studio community 2013,这个对学生免费。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8650次
排名:千里之外
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'天天酷跑攻略_***石_刷分_坐骑_人物_官网_不凡游戏专区
平台:安卓/苹果
类型:动作/跑酷/休闲娱乐
研发商:腾讯游戏