Tile Based Engine的设计 - Tile形状的选取

文章围绕Tile Base Engine展开,强调其处理速度的优点,指出设计Isometric Engine应发挥其优势。介绍了Tile Base的Engine需将图素分割成等大图片,分析了Isometric Tile的拼接问题,给出两种菱形Tile形状及选择原因,还提及视角固定及换算方法。
Tile Base Engine 的优点在于其处理速度. 如果我们设计 Isometric Engine 而无视这个优点, 那未免太亏了. 所以贪图一时编程或美工的方便, 将游戏设计成 Tile 大小随意, 而又不去发挥任意大小 Tile 的优势, (例如形状任意, Sprite 运动路线的任意等等) 将无法超越从前的游戏 Engine。我们必须向效率和表现力两方面中之一努力. 这次我选择了效率.

  不象非 Tile Engine 那么自由, Tile Base 的 Engine 必须保证图素被分割成一块块等大的图片, 有利于遮挡运算和重复利用图片.而Isometric Tile 的拼接并不象矩形Tile 那么容易. 计算机位图数据不允许斜线的存在, 所以 Tile 的形状必须细心设计才能保证无缝拼接. 所有拼接问题, 通常指的底面菱形. 下面展示了一组典型的可以相互拼接的菱形. 请注意它们的形状, 四个顶点都是两个点, 这样才能保证可以无缝拼接. 菱形的两条对角线分别是 2n 和 4n+2 (图中 n=5).



  除了这种形状,我们还有另一种选择. 就是 4 个顶点都是一个点的.
如图:



看看这种 Tile 的拼接, 我们要注意的是需要在拼接的时候, 顶点重叠对齐. 看看图:



重叠部分是必须的. 这样的菱形对角线分别是 2n-1, 4n+1(图中 n=5). 我的选择正是这第二种形状. 因为它的单个Tile 宽虽然是4n+1, 但每两个间有一点的重合, 整体上看,每个Tile宽占 4n. 而屏幕的宽也是 4 的倍数, 这在后面的设计中可以带来些方便.

P.S. 需要注意的是, Isometric 的 Tile 形状不能任意取, 所以视角也就固定下来了. 我们用 3D 建模软件作图片的时候需要注意视角的问题, 就是摄象机的角度. 在我的另一篇文章《斜视角引擎设计:视角的选择和坐标变换》中讲述过视角的换算方法. 我们这里选取的视角换算出来是 30 度 (arc sin 2n/4n)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值