来源:自学PHP网 时间:2015-04-14 14:51 作者: 阅读:次
[导读] 在游戏的世界里,玩家在地图上的某点,是否能够走动,是否遇到障碍,是否是走到了阴影处,是否水层等等先关信息都要我们前后端知道。那么服务器是如何进行实现的呢。下面主要...
在游戏的世界里,玩家在地图上的某点,是否能够走动,是否遇到障碍,是否是走到了阴影处,是否水层等等先关信息都要我们前后端知道。 那么服务器是如何进行实现的呢。下面主要给大家讲讲。 首先,我们知道图片是以像素为主要为单位进行计量,但是我们后端又不能使用这个东西,在二维的世界观里,我们是以坐标(x,y)具体的表现出其某个东西,所在的位置。因此,我们就要通过这个像素来表达出地点。
想象一下啊,当我们确定到一个坐标的时候,但我们将其慢慢变大,那个小点就开始显示长宽。因此我们也用其原理。因此,我们是以将地图划分为很多个小格子,这些小格子,其实就代表了所谓的一个点,那么这个小格子是多大呢,这里我们一不超过50的为单位,作为长和宽。 那这个小格子怎么样去表达具体的信息呢,处,每个因此,我们约定,用1个字节来表其信息,一个字节八位0000 0000,每个位具体可以表示什么含义,比如,第一位如果0表示可行走,1表示障碍。第二位0表示无遮掩,1表示遮掩。等,这里我就不一一举出。不同游戏有不同的具体表达信息。 好,那么我们划分了很多歌小格子,每一行都有相同的小格子,那么我们就知道了这个地图,长有多少个各自,高有多少个格子。 设计一个结构体,头 [html] struct tagMapHead struct tagMapHead int m_height;地图的高[html] view plaincopyprint?short m_tileSize;//小格子的变长 short m_tileSize;//小格子的变长[html] view plaincopyprint?}; }; 头+包体。就生成了msk文件。
当前端生成了msk后,我们后端开始对其进行数据解析了。 服务端的具体存数据是 [cpp] struct TMapMask struct TMapMask MASK_BIT_TYPE m_pMaskData[1]; 根据msk二进制文件,后端进行解析,因为,我们每个地图,还有个基本的信息配置表,因此,我们就根据其掩码信息,将其一些数据附加到地图的结构体里。 比如,地图最大坐标,地图大小,按照我们的规定,这个地图有哪些动态区域。(动态区域,以后回去讲解),等等数据信息,供以后我们在地图上使用。 在这里地图掩码主要讲解完毕。 以后会将,我们是如何在地图上,看到玩家的。
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com