码迷,mamicode.com
首页 > Web开发 > 详细

arpg网页游戏之地图(一)

时间:2015-07-28 00:42:58      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

  开发arpg网页游戏一项比较重要的难点是游戏推图。游戏中主城的地图比较大,我遇到到最大的是8000*6000的地图,比较小的就是副本地图,有可能还占不了一屏。像这种比较大的地图,一般都是分块加载的,游戏中不可能一次将整个地图添加到舞台上,得根据角色的移动视窗来加载地图。这个时候会碰到三种情况:人动,地图动;人不动,地图动;人动,地图不动。我试过前两周情况,人动,地图动,这种情况画面看着比较流畅,人不动,地图动,不太流畅。所以选择了前者。

  什么是人动,什么是地图动?开发网页游戏都是分层的,一般分为:地图层,地图特效层,人物层,特效层,UI层,信息提示层等。人动的意思是人物层xy坐标的变化,地图动,就是地图层的xy坐标变化。人物层和地图层,会根据人物视窗的移动而变化。

  人物在地图中移动,都是按照格子计算的。在页游前期,格子都是菱形的,后来好像都变成正方向了。两者唯一的区别:在不同的方向移动速度有所不同。像我现在用的是正方形,每个格子大小是25*25的。也就是说8000*6000的地图里会有 8000*6000/25*25个格子。服务器计算位置都是格子的XY坐标。所以在小地图上显示的人物坐标都是格子坐标,不是像素坐标。还有一个概念是地图块,地图分块多大的都有,并不是越大越好,也不是越小越好。我用的地图块是200*200的,所以要计算需要显示的地图范围,要根据格子坐标和地图块大小来计算。

  游戏推图,还会涉及下面几个问题:

  1. 人物视窗(ViewPort)
  2. 按需加载地图块算法
  3. 地图优化策略:
    1. 地图块加载队列
    2. 渲染策略优化
    3. 未加载前显示马赛克提升玩家体验

  最后解释下,为什么地图块不是越小越好,也不是越大越好。因为AS中addChild和removeChild都会触发AS的重回事件,影响效率。地图块越小,add和remove的次数就会越多,地图越大,AS重回的区域就会越大,也会影响效率。所以适中最好,这并没有一定规则。我的是参考傲剑的地图大小。

 

arpg网页游戏之地图(一)

标签:

原文地址:http://www.cnblogs.com/BlueWoods/p/4681572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!