区块2D游戏(Tie based Game)标准场景地图由2维数组构.doc

彩虹网

区块2D游戏(Tile based Game)标准场景地图由2维数组构成,2维数组的值代表不同的地表类型及精灵。关卡设计人员可以用文本文件来设计不同的关卡。地表类型一般都是简单的等高等宽的几何形状,如矩形或圆等。

选择的理由:

入门游戏,有一定乐趣,关卡足够多

能引入A*寻路,动画

足够的简单,关卡设计已经完成,不需要剧情设计,不需要滚屏

有一个好的原型,能够展开重构,随时可以发布,随时可以告一段落

原始游戏截图:(标准的2D正视图)http://eclipse-games.

MIT授权模式,比GPL宽松,可以进行修改和再发布,应包含原作者的著作权声明和版权声明。

不成功的转换:(x、y弄反了,贴图有些也没有用45度素材)

转换后的地图:

另一套素材:

使用PNG的素材:(注意光影的表现)

公测版的缺省素材,注意,墙都连起来了,还有外墙衬

材质

3d材质的45度投影

遮挡

美工设计,方块菱形不遮挡,标准48*24中点连线菱形,周围全透明:可以和以前一样重绘,在重绘前用一个白菱形清一下底

采用全部重绘解决遮挡问题,先全部清空,再逐一绘制,见TileMap的PaintListener,全部重绘对于这个游戏,在主流PC上是足够了

考虑遮挡,重绘

选择b,足够简单,对美工约束最小,两套图分别为48*32、48*38,可以更自由发挥。重绘时间足够短,全绘一遍40毫秒左右,能达到30FPS效果。

选择c,需要采用剪切和局部绘制顺序,重绘时间为0或16毫秒,速度有质的提高。

A*寻路

比想像中简单,有树的宽度搜索算法概念,理解A*就比较容易了。为了保持A*的通用性,摘了一个算法实现,并且将游戏中的格式转换了一下,而没有做一个定制的A*实现。效率可能会有影响,本游戏体现不出来。

动画

使用Display的timerExec方法。

自动行走过程中再次点击鼠标,将导致又触发一次自动行走

两次行为线程叠加,混乱,将step变量全局化来控制不允许重入。

屏幕坐标转游戏坐标

先减去余数,将屏幕坐标通过定位方块的原点获取到正确的矩形索引,然后判断点与矩形及内菱形的关系来确定菱形索引。

负数坐标的修正?

更完整的算法采用MouseMap,MouseMap最后的颜色查找表回归到自己写的“点与矩形及内菱形的关系”函数进行简化。

键盘控制

,只允许用向上键向前走

第三套就使用方向感,也不容易犯错误,但按键次数太多。

键盘控制方案可在第2、第3套之间选择。

完全的国际化

Retarget action

工具栏先定义占位符,再retarget,在freenote中有GEF帮着做了,在普通RCP中如何实现?见附件一。

抗锯齿

gif图边缘是有锯齿的,png图就好了

全绘制gif图30毫秒,全绘png图40毫秒

PNG带来图像质的飞跃

PNG的阴影效果

PNG的光效果:

两套素材切换,换肤

就是切换时将原有资源dispose掉,再载入新的

地图数据清洗

①冗余的墙

找一个最小包围即可。

多余的墙特征,其东南、东北、西南、西北均为墙或为空(地板不为空)

②墙拐角bug

当小人走过拐角时,因为上边为空,不刷,所以留下一截图。

如果先清白,再与背景不合,简单的方法是这种地方再增加一块墙。

地图特点:

######

## . #

# $@#. #

# $# #

该块特征,空白块,其西南、东南为墙,其南为地板、目标或小人

界面布局调整

调整后为:

增加背景图

实现局部刷新之后,CPU负担比较小,背景图也可以考虑了,以下是一例:

墙拐角的自动处理

见附件云风的字符表格的算法,共有16种情况,以2D角度来划分,分别为

序号

2D位置情况

孤立一块

竖向的末端,如孤立两块竖连的第二块

横向的起点,如孤立两块横连的第一块

矩形的左下角,形如┗

竖向的起点,如孤立两块竖连的第一块

竖连的中间,形如┃

矩形的左上角,形如┏

三通之一,形如┣

横向的末端,如孤立两块横连的第二块

矩形的右下角,形如┛

10

横连的中间,形如━

11

三通之一,形如┻

12

矩形的右上角,形如┓

13

三通之一,形如┫

14

三通之一,形如┳

15

四通,形如╋

墙外围增加一圈地板做修饰

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。