Android游戏开发之主角的移动与地图的平滑滚动

photoshop合成蜘蛛狭电影中人物从电脑屏幕中爬出来的效果,人物钻出屏幕的效果经常见到,其实制作过程并不复杂。主要有两个难点:首先要学会观察,把人物超出屏幕部分精确的计量出来;然后就是超出部分的阴影处理。
最终效果

人物移动地图的平滑滚动处理

图片 1

玩过rpg游戏的朋友应该都知道RPG的游戏地图一般都比较大
今天我和大家分享一下在RPG游戏中如何来处理超出手机屏幕大小的游戏地图。

1、这是我在网上找到的一张笔记本素材。

如图所示为程序效果动画图

图片 2

图片 3

图片 4

地图滚动的原理

在本人之前博客的文章中介绍过人物在屏幕中的移动方式,因为之前拼的游戏地图是完全填充整个手机屏幕的,所以无需处理地图的平滑滚动。这篇文章我着重的向
大家介绍一下控制人物移动后地图滚动的处理方式。举个例子 如上图所示
比如人物向右移动,如果地图贴在屏幕左边边界
将先移动人物在地图的坐标,当人物在屏幕中超过三分之二后
则将地图向人物行走的反方向移动给玩家一种人物还在向右移动的假象,其实这时候人物只是播放向右行走的动画
在屏幕中的坐标不变 ,当地图向人物行走反方向移动到不能移动的时候 则表示
地图右侧边界已经贴住手机屏幕右侧边界 这样地图则不能在移动
这时候将移动人物在屏幕上的坐标直到人物贴住屏幕右侧边界,其它三个方向原理完全一样。

图片 5

代码的实现方式

还是以人物向右移动为例,我们须要三个坐标 一个是m_HeroPos
来保存人物在地图中的X坐标 一个是 mScreenPos 来保存人物在屏幕中的显示坐标
mMapPos
来保存地图在手机屏幕中的显示坐标,按键盘右键后人物在地图中的坐标加上8像素(表示行走的步长),当人物的坐标超过屏幕的三分之二的时候需要检测地图是
否已经在边界, 使用地图绘制在屏幕中的X坐标 加上地图的宽度
判断是否等于屏幕的宽度如果等式不成立 则表示地图可以向左放移动
这时候后人物mScreenPos人物显示坐标将不变
mMapPos地图显示坐标将向左移动人物一个步长的位置,如果之前的等式成立
则表示地图无法在向左移动
这时候mScreenPos人物显示坐标将向右移动人物一个步长的位置
直到屏幕右侧边界
mMapPos地图显示坐标不会改变。其三个方向的移动算法完全一样。

admin

网站地图xml地图