设计模式2:2D,3D图形库,游戏框架,游戏引擎

1、2D,3D图形库java

咱们把一条一条的函数调用,某个类的使用,这种状况叫库。编程

好比2D图像,java 1.6的库,导入java.awt, java.swing包,调函数。框架

图形库,好比OpenCV库,使用一个类Mat,来存放一张图片的像素数据。编辑器

使用Mat类的函数,处理图片。函数

而后调函数,就能提取一张图片的长、宽,调整图片的颜色、对比度。工具

3D图形库,OpenGL. 代码:动画

public void onDrawFrame(GL10 gl){
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIndentity();
GLU.gluLookAt(gl,0,0,-5,0,0,0,0,1,0);
}

用一条一条的函数,画出点、3D效果的面,画出3D的模型。查函数手册,就能知道对应功能。插件

2、游戏框架code

封装公共功能,提供不少工具类,这就是一个框架。好比Cocos2d。blog

使用Sprite,MoveTo,Scene这三个类,一款游戏60%的代码都省了。

全部人按这个框架作,使用统一标准。

语言问题:Cocos2d主要用C++写,能够跨平台生成IOS, 安卓不一样平台下的软件。

这样的框架,不止一款。人们管这样的开发框架,叫游戏引擎。

3、带编辑器的游戏引擎

例如Cocos2d,本身建好工程,在代码中使用Cocos提供的类编程,仍然对编程能力有要求。

能不能可视化地编辑,拖拽图片、动画素材,代码量大大减小。这就是Cocos Creator。官方的这张图,颇有表明性:

属性设置,右侧能够设置。素材,动画,均可以拖拽设置。程序不多了。

语言问题,Cocos Creator用JS.

可视化游戏引擎,行业领先的固然是Unity 3D.

操做的界面

全部的属性均可以设置,复杂的行为控制,特效,都有插件完成,代码不多了。

Cocos Creator和Unity ,相同的套路。

语言问题:Unity能够用C#(会C++就行),js。网上的建议都是用C#.

动画、属性、是否碰撞检测,都是在属性面板设置,不须要编程。

即便是写程序,Cocos用Sprite,MoveTo,Scene这三个类表示动画精灵、行为、场景,已经简化不少。

Unity的类,GameObject表示一个物体,表示一个碰撞检测的范围。

大概划分一下,Unity的库,完成了60%的基础功能。开发人员在面板设置,完成了30%的工做,程序只剩10%。

良好的编程技术,还要练。

全部的库、插件只有基础功能。复杂的业务逻辑,道具装备,任务剧情,数值计算,还得编程。

库、插件,没有的功能,都得编程。好比Collision2D只实现了两个碰撞范围是否碰到,护甲怎么算,伤害怎么算,打到不一样位置怎么算。

用户启动道具,效果持续五秒,而后冷却三秒,怎么写。没有这样的库,也没有现成的插件。

只有用程序,才能作出更多功能。