zoukankan      html  css  js  c++  java
  • cocos2d-x-3.6 引擎概述

    cocos2d-x是一个游戏开发引擎,从公布到如今也有五六年了,一路看它慢慢壮大。它是如今应用最多的开源2d引擎,没有之中的一个,据说已经占据90%的市场,所以。对于想从事游戏开发的童鞋来说还是有必要学习一下的。

    那么问题来了。什么是游戏引擎?

    一个写安卓和ios应用的程序猿。假设想通过自学来转向游戏开发,这个问题肯定要先弄清楚,否者堵在心里会不踏实,也不利于后面的学习。

    学习一个事物,首先要了解它的本质,而不是上来就去用它。

    汽车引擎。飞机引擎,生活中非常好理解。你看得见,摸得着,好像不须要解释。汽车引擎。能够理解为就是发动机,汽车最核心的部分。整部汽车的动力系统,是汽车的心脏。

    那么游戏引擎呢。怎么理解。

    汽车没有发动机。从外观上也许还是一部汽车。可是它也就长了一个汽车的样子,跟一堆废铁没什么两样。

    而一个游戏引擎却并非这样。开发一款游戏,你能够使用引擎,也能够不使用引擎。开发完毕之后它都是一个游戏。你能够在安卓上用安卓的应用接口来开发一个java游戏,塔防,连连看。横版rpg,这都是没有问题的。由于游戏。本质上就是一个无限循环(游戏循环),你全部的逻辑都在这个游戏循环里面,所以你全然能够自己实现,不借助不论什么引擎。

    所以。有人喜欢把游戏引擎比方成汽车引擎,我觉得这是不对的。你告诉新手,游戏引擎就像汽车的发动机。是动力源泉。那么问题来了,我自己写的游戏没有引擎,这个怎么理解成汽车发动机。汽车没有发动机就是堆废铁了。

    游戏引擎,更应该理解为一组工具,一个框架。像cocos2d-x这类引擎,属于代码引擎。就是说它提供大量封装好的代码,你须要学习各个代码模块的用法才干熟练运用。

    这类引擎学习成本较高,由于要熟悉引擎源代码。

    还有一类引擎像Unity3D,属于高度封装的工具性引擎。学习成本要低一些,由于他更直观。更上层。可是想要精通引擎,都须要有扎实的编程功底。我这里仅仅讲讲cocos2d-x,有机会以后讲Unity3D。

    cocos2d-x说白了事实上就是一个开发框架。你用不用它。游戏没有本质的差别,差别在于开发的过程。

    比方安卓上,相同是写一个连连看场景,假设不使用引擎,你可能须要自己写个view。计算可视区域,依据可视区域计算每个方格的大小,每个格放一个图片,调用onDraw方法来反复绘制。这样开发出来一个连连看。是跟安卓平台相关的。由于你使用了安卓应用框架的上层API。这个游戏不可能直接移植到ios平台上去。同理,你在ios平台用oc开发一个这种游戏,那么它跟ios平台相关。你也不可能移植到安卓平台上去。

    然而,假设使用cocos2d-x引擎。那么就须要熟悉引擎里面一个场景的概念。精灵的概念。节点的概念,然后使用引擎的方法把这些小元素组织起来,就是一个游戏场景。这个时候开发出来的游戏,就能够移植到多个平台。

    为什么会这样?

    这就是cocos2d-x引擎的威力了。前面说了,引擎仅仅是一个框架,使用与否似乎没有多大差别。然而并非。

    大家知道,游戏无非就是将一些图像。声音依照一定的逻辑组织在一起的一个应用。

    而各个平台有他们自己的组织方式。对于各平台的上层开发人员来说。你已经遵循了这个平台的组织方式,那么开发出来的游戏当然不能拿到还有一个平台去执行,由于它不遵循还有一个平台的组织方式。假设有个组织方式。在各个平台上都通用,那么不就能够依照这个方式开发出来夸平台的游戏了么。

    是的,cocos2d-x就是这种一个组织方式。引擎会做非常多基础工作,比方怎么把一张图片显示在屏幕上,怎么播放声音,怎么过渡画面,怎么制作特效。

    全部游戏里面有的元素,都会被封装成一个个完整的实现,你仅仅须要拿来用。不须要关心怎么实现的。而cocos2d-x引擎做了很多其它,它实现了整个游戏的主循环,同一时候提供非常多小颗粒的代码封装,比方样例特效,声音播放。动画特效。这些仅仅须要调几个函数就能够实现。我们仅仅要在主循环里面组织游戏逻辑就能够实现整个游戏了。这个过程就像做一个仿真人,给了你一个人体骨架,制造肌肉,制造毛发。制造血的设备,你仅仅须要依照骨架。制造对应的血肉填充到骨架里面,最后一个仿真人就出来了。

    再说它为何能够跨这么多平台,事实上并非它天生就这样。

    仅仅是由于,它跨的平台都支持标准的openGL ES接口,引擎针对不同的平台,做了一些适配工作,让各平台都使用openGL ES来绘制图像,然后使用C++来实现底层逻辑,这样就能够跨平台了。说的比較简单,大家能够看我之前的博客。有比較具体的解说cocos2d-x怎样跨安卓,win和ios三个平台的原理。

    最后总结一下。游戏引擎事实上就是一个框架和对应的一组代码模块。

    在这个框架上,使用这些代码模块来实现游戏逻辑,会事半功倍。最后开发出一款游戏。

  • 相关阅读:
    【C#进阶系列】06 类型和成员基础
    纪中5日T1 1564. 旅游
    纪中17日T1 2321. 方程
    纪中17日T2 2322. capacitor
    纪中10日T1 2313. 动态仙人掌
    纪中14日听课小结 图论 最短路 二分图 差分约束
    一个抓猫的游戏 消遣GAME 持续更新中!
    洛谷P1464 Function  HDU P1579 Function Run Fun
    洛谷P1976 鸡蛋饼
    纪中12日T1 2307. 选择
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7191691.html
Copyright © 2011-2022 走看看