【原创】2D游戏问题

来源:互联网 发布:淘宝助理更新类目 编辑:程序博客网 时间:2024/05/29 13:31
    1、人物范围控制,换句话说就是如何保证人物不会从这些房屋、篱笆上直接穿过去

       2、人物向下移动时,会钻到地底下

       3、摄像机如何跟随人物实现平移

        4、小地图的实现

        5、场景地图范围控制

 

 

   1、人物范围控制

      对于这个问题,目前的解决方案是在地图上采集地图上的建筑物的坐标,然后判断人物的坐标和建筑物坐标的关系,博主个人感觉难度很大,因为我们的图是放在Plane上的,获取地图上建筑物的坐标显得十分困难。

       2、人物向下移动时,钻到地底下

      这个问题产生的原因是我们角色的贴图和地图的贴图放在了同一个平面上,我们知道,摄像机在空间内投影的时候,存在一个Z方向上的景深问题,我们所有的绘制都要在不超过这个景深的前提下进行,不过我似乎并没有在设置面板中找到这个选项,后来尝试了一种方法,就是调整角色所在的Plane的Z方向坐标,具体调节大家可以自己尝试。

      3、摄像机随人物的平移

      对于这个问题我们可以在角色的位置发生变化的时候,让地图向相反的方向产生一个平移,这样角色的运动感就有了,代码如下:

 

 
      if(Input.GetKey(KeyCode.A))           {              mCamera.transform.Translate(Vector3.right*Time.deltaTime*(-mSpeed));           }           //向右           if(Input.GetKey(KeyCode.D))           {              mCamera.transform.Translate(Vector3.right*Time.deltaTime*(mSpeed));           }           //向上           if(Input.GetKey(KeyCode.W))           {              mCamera.transform.Translate(Vector3.up*Time.deltaTime*(mSpeed));           }           //向下           if(Input.GetKey(KeyCode.S))           {              mCamera.transform.Translate(Vector3.up*Time.deltaTime*(-mSpeed));           }

     注意将地图平移的速度设置得小一点,这样人物移动的时候才会显得真实。

      4、小地图的实现

      对于3D游戏而言,我们可以另外设置一个摄像机从上方进行投影,对于2D游戏,博主的思路是在大地图里获取角色人物的位置,然后根据大地图与小地图的缩放比例,重新计算角色人物在小地图上对应的坐标,然后在该点处完成绘制即可,不过,博主并没有实现这一功能,因为在对大地图的宽度和高度计算上,目前依然存在问题。

     5、地图边界的判断

     通过GameObject.Find()方法获取地图所在的Plane,进而可以获取当前游戏界面的宽度、高度,不过在测试的过程中,博主发现这样方法获得的高度、宽度与实际情况相去甚远,所以希望如果有知道怎么解决这个问题的朋友,能够告诉我啊。

0 0
原创粉丝点击