游戏中小地图的实现

游戏中,某些场景会用到小地图。
如其名,小地图的本质是地图,缩略的简化的二维坐标集合体,不标示高度,只标示平面坐标。小地图的关键是比例尺。只需将实际物体位置按比例标示在一个缩略图上。物体可以按照是否有变动(是否一直存在,位置是否会更改)分为两种,静态物体和动态物体。静态物体直接绘制到背景图片里,动态物体,给一个标志,需要根据它的存在状态和位置变化实时标示在小地图中的位置。
做小地图,还需要明晰,哪些是需要在小地图上反映的,哪些可以省略。比如,考虑到游戏的目的以及游戏性能等,在moba战斗中,我只是想知道主角的位置,野怪的位置,血泉的状态,至于小兵,如果不在乎,可以不用在小地图中反映小兵信息。
条件:美术提供按比例绘制的静态物体的背景图。横向比例尺和纵向比例尺尽量保持一致。

美术可以告诉你比例尺,但我觉得更好的是,定2个基准点,根据基准点在实际场景中的坐标以及小地图里的相对坐标计算比例尺。有了比例尺,就能将场景中所有的物体坐标实时反馈到小地图上。

private void CalLittleMapScale()
    {       
		float mapWidth = Mathf.Abs(m_TransMapBase1.localPosition.x - m_TransMapBase2.localPosition.x);
		m_fMapScale = mapWidth / Mathf.Abs(m_db.m_goMobaBase1.transform.position.x - m_db.m_goMobaBase2.transform.position.x);     //需要美术保证宽高同比缩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值