loading请求处理中...

手机游戏开发应注意场景开发的那些问题?

2021-12-01 09:31:25 阅读 11576次 标签: 手机背景图手机游戏 作者: danielsu
    智能手机正在不断地改变着人们的生活,而随着智能手机的不断发展,手机游戏开发也开始成为热门。手机游戏开发中场景开发是手机游戏成败的重要因素。一个能够迅速让玩家进入状态的场景对于一款游戏而言是相当关键的,制作细腻的游戏场景能够让玩家迅速感受到游戏开发者的理念和蕴含其中的热情。我们今天就来看看手机游戏开发中场景开发有哪些需要注意的问题。

手机游戏开发应注意场景开发的那些问题?

    场景是什么呢?场景就是游戏角色所存在的世界。在RPG、SLG、RTS等类型的游戏中,场景的概念比较明显,从视觉上看就是游戏的地图。不过从程序的角度看,场景是一种数据结构,不但包含了地图显示的图形信息也包含了角色在场景中活动所需要的物理信息和事件信息。比如地图上有些地方是不可以通过的,有些地方主角走过去会触发一个事件等等,这些信息往往包含在场景中。广义的场景还包含地图上的NPC信息,而狭义的场景仅包含地图和物理层。这里讨论狭义的场景,即不包含NPC信息的场景。

    1、场景加速算法分类

    当前主流的场景加速算法主要有这样几个大类:

    (1)视域剔除:指的是将场景中在观察区域以外的多边形或物体在提交到渲染管线之前就剔除掉,从而可以大幅减少渲染他们的开销。

    (2)遮挡剔除:指的是将场景中完全被别的物体遮挡住的多边形或物体在提交到渲染管线之前就剔除掉,从而可以大幅减少渲染他们的开销。

    (3)LOD:为某个物体建立一系列不同精度的模型,在实际渲染的时候根据一定的规则选择合适精度的模型去渲染。从而降低整个系统的多边形数,而不会对视觉效果产生太大影响。

    2、怎样组织图片显示场景

    最常用的方法是拼Tile,俗称贴瓷砖。整个场景用有限的图块拼接而成。Game API中的TiledLayer就是这种方式。使用Tile方式,一般用一个二维数组表示一张地图。实际使用中,往往使用一维数组代替二维数组,这里为了讲解方便使用二维数组描述。二维数组很好的对应了二维坐标。二维数组的每一项对应地图上某格使用那个瓷砖,整个二维数组就表示整张地图。为了方便的编辑地图,往往需要开发地图编辑器,所见即所得的编辑地图,将生成的数据存储为文件,在游戏中通过读取文件获取数据。如果场景有多层,比如比较高的建筑物,就要编辑多层地图了。数据组织好了,渲染的时候只要按顺序将二维数组中的每一项对应的Tile在指定位置画出来。实际操作中,地图往往远远超出屏幕大小,这就涉及到卷轴的概念。在卷轴式地图中,屏幕可以看成是一个摄像机,每次只显示地图的一部分。随着主角的移动,屏幕所显示的部分跟着变化,形成卷轴。

    卷轴式地图显示的时候,从屏幕(摄像机)所覆盖的第一个Tile开始绘制。需要注意的是屏幕所能覆盖的Tile包括部分覆盖的Tile。造成部分覆盖的原因是屏幕的卷动速度并不是Tile宽度的整数倍。在实际手机游戏开发中,卷轴速度往往可能是变化的,这样的卷轴显得比较自然。按照一定的顺序将屏幕所能覆盖到的所有Tile都绘制一遍,场景的绘制工作就完成了。这些Tile绘制的时候要采用相对于屏幕的坐标,而不是相对于地图的坐标。在2D游戏中经常用到屏幕坐标和地图坐标的转换。我的原则是所有的逻辑计算都统一在地图坐标上,只在最后渲染时才将逻辑坐标转换成屏幕坐标,对于场景和角色都一样。转换的方法很简单。设一个Tile(或角色)在地图上的坐标为(x,y),屏幕相对于地图的坐标为(sx,sy),那么Tile在屏幕上的坐标就是(x-sx,y-sy)。注意单位要统一,往往Tile的单位是格,所以要转换成像素单位,即格子坐标乘上Tile宽度或高度。将到这儿你会发现,其实我们已经实现了TiledLayer的主要功能,再加上管理Tile图片的部分一个简单的Tile引擎就成形了。不过你可千万不要满足,真正的游戏开发中场景引擎比这复杂的多,除了这种2D引擎还有2.5D的斜视角引擎,在渲染速度方面更是做了多方面的优化。

    3、场景中的物理作用和事件检测

    在场景中有些地方是无法通过的,有些地方走上去会触发某个机关,这些信息往往也存储在场景信息中,用另一个数组表示,一般称为物理层、地形层或事件层等等。最常用的信息就是碰撞信息,它用来处理角色和地图的碰撞。碰撞检测在游戏开发中是一个永恒的话题,而2D地图碰撞是其中最简单的一种。由于使用了物理层,我们只要计算出下一帧角色所要到达的位置是哪一格,如果这一格的物理层信息是不可通过,则组织角色前进。这种碰撞检测不同于物体间的碰撞检测,不必和所有的物体进行遍历判断,缺点是不够精确。减小物理层格子的大小可以提高精确度,但这会使数据变多。所以物理层的碰撞检测一般只用在地图上,如果有比较特殊的物体,就让它作为一个角色存在,利用角色间的碰撞检测。

    手机游戏开发中的场景开发作为一个游戏成败的关键因素,有很多的注意点需要把握,小编上面仅仅是列举了一些常见的问题供大家参考,希望能够对您的手机游戏开发之旅能够有所帮助。同时您也可以通过一品威客网发布您的任务需求,让已经手握手机游戏开发技术的服务商们为您服务,为您创造价值。

手游开发公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
手游开发相关任务
DESIGN TASK 更多
安卓手机输入法app开发

¥10000 已有3人投标

手机软件开发

¥1000 已有1人投标

手机商铺的宣传片拍摄

¥3500 已有1人投标

手机壳图案设计

¥500 已有1人投标

仿制漫画网站电脑版及手机版

¥3000 已有1人投标