`
suiyuan0808
  • 浏览: 155749 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

网络游戏地图移动显示原理学习系列一

 
阅读更多

网络游戏地图移动显示原理学习系列一

网络游戏,特别是RPG网络游戏如仙剑,战将传奇,魔兽世界等中,移动地图是不可缺少。不同的任务,不同场合有着不同的地图。这些游戏地图原理大致是一样的(无论是2D还是3D游戏),一幅十分漂亮华丽的游戏地图界面是由一张大图片组成吗,不,不是,是由一张张很小图片按照一定逻辑编排在一起的。看看下面的游戏界面,很漂亮吧,他是由很多小图片组成的哦,在游戏过程不断加载图片的:

今天我就使用一个开源的游戏地图给大家简单说明游戏地图编辑器以及游戏中如何实现地图,看看这个就是游戏地图编辑器了,这个游戏的案例下我主要讲解他的原理:

上面的游戏编辑器中要用来编辑地图上建筑障碍以及可以移动逻辑,红色就是障碍和建筑,是无法通过的。等我们变好游戏地图会生成一个XML文件,我们要做的就是要解析这个XML文件:

我编辑以后地图结果:

生成的xml地图数据参数说明:
item节点:地图元件
id:标示
file:显示图片
type:元件类型
xoffset:横向偏移量
yoffset:纵向偏移量
px:像素坐标X
py:像素坐标Y
ix:逻辑索引坐标X
iy:逻辑索引坐标Y
walkable:可移动区域
map节点:整个地图的root节点
filename:显示图片
name:地图名称
mapwidth:地图宽度
mapheight:地图高度
loadType:加载类型(整块、栅格)
roadType:空白区域方式(路点、障碍)

这是游戏地图上一个个小块,是以45角度放在地图上的:

这是我在开发环境下运行的游戏效果,途中的小人物只能按着没有障碍的公路走了:

这是开发环境下的源码,好了,太晚了,我下次再具体讲解它源码原理:

分享到:
评论

相关推荐

    Libgdx专题系列 地图移动

    通过这个“Libgdx专题系列 地图移动”的学习,你将掌握如何在Libgdx环境中构建可交互、可探索的游戏世界,并为玩家提供流畅的地图导航体验。无论是初学者还是经验丰富的开发者,都能从中获得宝贵的知识和技巧。记得...

    java做的贪吃蛇游戏

    1. 蛇的移动:游戏的核心是蛇的移动逻辑。蛇由一系列坐标点表示,每次时间间隔后,蛇会根据其当前移动方向更新坐标。同时,需要检查蛇是否撞到自身或边界,以判断游戏是否结束。 2. 食物生成:游戏中的食物随机出现...

    泡泡堂游戏设计

    这个项目旨在重现盛大网络最初发布的泡泡堂版本,通过学习和实践,开发者可以深入理解游戏设计原理和C#编程技术。 【描述】:在本资源中,开发者将面临一系列挑战,包括但不限于游戏逻辑构建、图形界面设计、用户...

    MFC坦克大战小游戏成品,可人机,可双人对战。

    MFC提供了一系列的绘图函数,如CDC类的DrawRect、DrawEllipse等,用于绘制坦克、子弹、地图等元素。同时,GDI支持位图操作,可以实现动态加载和显示背景图像,提升游戏视觉效果。 此外,游戏还需要有良好的用户交互...

    c语言贪吃蛇游戏的双人对战版.rar

    蛇由一系列连续的方块组成,每次移动时,蛇头会根据用户输入的方向前进,而蛇身则会跟随其后。当蛇吃到食物时,蛇的长度会增加,反之,如果蛇头部碰到自身或边界,游戏就会结束。 在双人对战模式下,我们需要两个...

    java开发的坦克大战图片版游戏

    例如,开发者可能使用二维数组来表示游戏地图,每个元素代表地图上的一个单位,通过遍历这个数组,可以实现坦克的移动和碰撞检测。 接着,图片版游戏的重点在于图像处理。Java提供了丰富的图形库,如Java2D,用于...

    有关瓦片地图拼接的相关库3rdParty_x64.rar

    总的来说,通过学习和使用“3rdParty_x64”中的库,不仅可以深入了解瓦片地图的工作原理,还能提升C++编程能力,特别是对于图形处理、网络通信和地理空间数据的处理。这对于游戏开发、GIS应用或任何涉及地图展示的...

    使用C++編寫的一個迷宮小遊戲

    例如,玩家可以通过键盘控制角色移动,游戏结果可以在屏幕上显示。 3. **文件操作**:用于保存和读取游戏进度、排行榜数据,C++的`fstream`库提供了文件读写的功能。 4. **算法与数据结构**:迷宫生成和解决通常...

    武林传之刀剑江湖录[中篇]

    5. 网络通信:如果是网络游戏,还会涉及服务器与客户端之间的通信,处理登录、同步游戏状态、多人协作等功能。 6. 资源管理:游戏中的音效、图片、动画等资源的加载和释放,以优化内存使用和性能。 7. 故事脚本:...

    网络上流传的贪吃蛇源码 tc的比较多,特上传vc源码

    2. 蛇的移动与碰撞检测:蛇由一系列连续的坐标点组成,每次移动时,蛇头会根据用户输入的方向改变位置,其他身体部分则依次前移。同时,我们需要检测蛇是否撞到边界或自身,这通常通过比较蛇的身体坐标来实现。 3. ...

    玛丽冒险的程序.zip

    《玛丽冒险的程序》是一个包含了源码的压缩包,提供了开发者深入学习和研究游戏开发的宝贵资源。源码是程序的原始代码,是程序员用编程语言编写的文本,它揭示了程序背后的逻辑和实现方式。这个压缩包可能包含了游戏...

    贪吃蛇c++版带注释

    1. **基本结构**:游戏通常由主循环(game loop)构成,这个循环不断检查游戏状态,处理用户输入,更新游戏世界,并显示结果。在C++中,可以使用`while`或`for`循环来实现。 2. **数据结构**:贪吃蛇的身体由一系列...

    贪吃蛇大作战之成“龙”大冒险.rar

    《贪吃蛇大作战之成“龙”大...对于初学者来说,这是一个极好的实践平台,可以深入理解C#编程和游戏开发的原理。而对于有经验的开发者,这个项目提供了扩展和优化的可能,比如增加网络对战功能、优化图形渲染效果等。

    terrain_terrain_zip_

    `font.cpp` 和 `pic.cpp` 可能分别与文本渲染和图像处理有关,虽然它们不是地形处理的核心,但在游戏界面或者地图显示时会用到。 `RTIN.cpp` 提到了“RTN”,这是实时地形导航网络的缩写,通常用于路径规划和导航。...

    The_Snake_Game:通过“数字创新一号”训练营开发的游戏

    游戏地图通常是一个有限的矩形网格,用于限制蛇的移动范围。开发者可能使用二维数组或字典来表示这个网格,并通过碰撞检测算法来判断蛇是否触碰到边界或者自己的身体。碰撞检测通常基于简单的几何原理,如坐标比较。...

    CleanEmUp:我的自上而下射击游戏的代码

    《CleanEmUp:自上而下的射击...通过分析和学习CleanEmUp的源代码,开发者不仅能了解C#编程和游戏开发的基本原理,还能掌握使用MonoGame框架创建自上而下射击游戏的具体实践,这对于提升个人的游戏开发技能大有裨益。

    A*寻路(vs2012)

    1. **节点(Nodes)**:在A*算法中,地图被抽象为一系列节点,每个节点代表地图上的一个位置或状态。 2. **边(Edges)**:节点之间通过边相连,表示两个位置之间的可行走路径。每条边通常带有代价,代表移动到相邻...

    AIETankGame

    《AIETankGame》是一款基于C#编程语言开发的坦克战斗游戏,旨在通过游戏的方式让玩家体验人工智能(AI)在游戏中的应用。本项目的核心是利用C#的强大功能和灵活性来构建一个具备智能行为的坦克游戏环境。在这个环境...

Global site tag (gtag.js) - Google Analytics