网页功能: 加入收藏 设为首页 网站搜索  
Tile Based Engine的设计 - Tile形状的选取
发表日期:2007-03-28作者:[转贴] 出处:  

   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)

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 Tile Based Engine的设计 - Tile形状的选取
本类热点文章
  脚本系统的实现
  C++基本功和 Design Pattern系列(2) Ty..
  C++基本功和 Design Pattern系列(1) - ..
  斜45度游戏开发(提高篇)
  睱酵笴栏祘Α砞璸?? - [秈顶絞]
  斜45度游戏开发(二)
  第一次写技术文献。Collision AI
  斜视角游戏中遮挡的判断
  C语言基本功教程系列(5) - 文件, Socke..
  用rand()和srand()产生伪随机数的方法总..
  C++基本功和 Design Pattern系列(3) co..
  C语言基本功教程系列(1)
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2024 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00433