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

一、2D,3D图形库

我们把一条一条的函数调用,某个类的使用,这种情况叫库。

比如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的模型。查函数手册,就能知道对应功能。

二、游戏框架

封装公共功能,提供很多工具类,这就是一个框架。比如Cocos2d。

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

所有人按这个框架做,使用统一标准。

语言问题:Cocos2d主要用C++写,可以跨平台生成IOS, 安卓不同平台下的软件。

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

三、带编辑器的游戏引擎

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

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

设计模式2:2D,3D图形库,游戏框架,游戏引擎_第1张图片

属性设置,右侧可以设置。素材,动画,都可以拖拽设置。程序很少了。

语言问题,Cocos Creator用JS.

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

操作的界面

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

所有的属性都可以设置,复杂的行为控制,特效,都有插件完成,代码很少了。

Cocos Creator和Unity ,相同的套路。

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

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

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

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

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

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

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

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

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

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

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

 

你可能感兴趣的:(java和设计模式)