- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
创建一个等角投影的Tile贴图引擎
By Michael Dundee
当我开始编程的时候为的就是开发游戏。但一段时间以后我放弃了,因为用DELPHI做开发实在找不 到合适的游戏API来支持。我曾考虑改用C/C++,因为它们有那么多的API支持,例如DirectX和0pcnGLo 但是对我来说使用那么多API来开发C/C++程序实在我人恐惧。
后來我碰巧遇见DelphiXo它把API封装的简单易用,相当迅速、强大。我非常喜欢它并使用至今, 现在我愿意和大家一起分享。
这里并不介绍如何安装DelphiX ,也不会介绍DirectX,因为这会占用太多的文章篇幅。感兴趣想了 解这方面知识的人,我推荐你们看看Dominique Louis的文章以及其它Borland开发社区的文章(1, 2, 3)。
这篇系列教程的基木目标是创建一个基木的游戏引擎。将包括这些主题:建立一个等尺寸的贴图引緊; 活动单元和贴图;路径寻找、基本的游戏AI、碰撞检测。
这一章将创建一个基本的等角投影贴图引擎,用来从磁盘读取地图。与此相关的编辑器可以从这里下 Si downloaded here。
开始
首先预览一下下而文章中会遇到的特殊词汇。
TILE: 一个具冇规则形状的小图片。一个t订e不能表现什么,但是大虽的tile可以组成某些东西。一般 用来生成游戏中的地形。Tile可以有不同的形状。最常用的有菱形、方形和六边性,由于这是一个等投影 t订e引擎,所以我们使用菱形tileo
TILING ENGINE.将t ile绘制到各自位置的有序代码(一般是过程或者部分过程)。它也要决定拿一个渲 染帧被显示。
TILING:设置所有tile到正确位置的过程。也就是tiling引擎要做的事。
制作一个等投影的地形
这个技巧制作一个等投影的坏境,将所有的tile的边相连。此例使用菱形的tile。如果我们简单的 将它们一行一行的边边相连放置在一起效果如下所示:
正如你所见,我们创建的只能叫西洋跳棋。图片的透明部分形成巨大的漏洞。边缘没冇很好的相连, 为什么?这就是我些这篇文章要解决的。
通常的方法是将第一行画好,下一行的起始不是在32象素(tile的高度)而是16象素。也要向左 侧偏移32个象素开始。然后每个新行都向上移动16个象素并左移(右移)32个彖素。
但这不是全部,你玩Age of empires或AoE2时一定注意到地图的边缘不是锯齿型,这个地图的形状 是菱形。解决的方法是第一行只画一个tile,然后画2个、3个等等,到某一个点为止。然后开始逐行减 少直到为零。这时候你不需要左右来回切换偏移方向,只要在增加的时候向左偏移,减少的时候向右偏移 即可。如果做一个3x3的tile地图看上去如下:
你想为地图増加草和水吗?如果你想知道答案就看这里。如果在地图屮增加变化(策略游戏),我们 就不得不从某些地方将地图加载进來。一个2维的整型数组可以解决这个问题。.在数组中检测当前的tile 是否绘制。可以使用多张地图,在运行期不要重定义。我们将它们存储为文件。在代码中你会看到这是一 件简单的事。这篇文章冇一个地图编辑器,这是一个非常简单的地图编辑期,用來保持地形数组。你必须 下载它并自行编译才能使用。
理论听烦了,下面看看实践吧!
建立一个TILING引擎
首先,建立-?个文件夹用来存放所有的图片和地图文件,以防丢失。
第二步下载图片here。如果你选择使用口己的图片,记住图片一定要是64 pixels宽32 pixels高。
然后下载编辑器,确定安装了 DclphiX后编译编辑器。喝点东西,找张舒适的沙发,我们开始吧
建立一个新的Delphi应用程序。把它保持到图片的目录中。命名为uGame. pas和Game, dpr。
首先建立一个窗体,将窗体巾明的类从TFonn改为TDXForm。在对象查看器中设置如下属性。
BordcrStylc: bsNono
Caption: Whatever you want
Name: MainForm
现在需要一个绘画用的surfaceo选择TDXDraw组件,将它拖放在窗口上并设置如下:
Align
alClient
Display
640x480x8
Name
DXDraw
Options
doEullScreen
True
doAllowReboot True
doFul1 Screen
True
下呦拖放一个TDXlmageList组件用來放置图片,并设置如下:
DXDraw DXDraw
Name TileMcips
增加图片的 Items 属性,(You will figure out how, it* s self-explanatory.),添加有 4 个图 片,编号0 — 3。
然后我们需耍一个Timer告诉计算机如何绘
您可能关注的文档
最近下载
- 2025年广东省云浮市小升初数学模拟试卷.pdf VIP
- GB50003-2011:砌体结构设计规范.pdf VIP
- 6MW屋顶分布式光伏项目方案可研报告(EMC).docx
- NHA-509稳态工况法工控柜安装手册V1.1.doc VIP
- 办公设备采购(电脑、打印机等)投标方案.docx VIP
- 南华NHA509汽车排放气体测试仪操作规程24页.pdf VIP
- 苏教版二年级数学上册全单元测试题(可打印).docx VIP
- 可行性研究报告-财务分析表格-全部带公式-准完美版.xls VIP
- PLC控制的Z3050型摇臂钻床电气控制报告讲解.pdf VIP
- 公安局辅警招聘考试试题库《综合理论知识》(含政治理论、法律法规、公安工作基本知识).pdf VIP
文档评论(0)