android游戏开发框架libgdx的使用(八)--相机和观察点
2012-11-05 09:44
656 查看
相机也可以成为观察者,最简单的例子就是魂斗罗。
图片分享:
玩家操作角色前进,后退,跳跃等,显示的世界(就是后面的背景)会不停变化。其实就是相机的观察点(视角)的改变引起的。
也许游戏的世界(背景地图)很大,比如10240*480,而设备的分辨率是800*480。现在游戏的角色在地图的最左侧,那么它的观察点就是(400,240)。
随着角色的向前移动,观察点也变化,通常是y值变大。
角色后退时y值变小。
角色跳跃时,x值变化。(其实地图可能要稍微高一点,比如500,这样角色的跳跃才会有效果)。
可以说相机是游戏开发的一个基本组件。而Libgdx的Stage类中就默认包含了一个Camera。
Camera类按照功能而言也有很多种,最常用的是OrthographicCamera(正投影相机),Stage中默认Camera的实现类为该类。
OrthographicCamera实现以下功能:
1.移动和旋转镜头
2.放大和缩小
3.改变观察点(视角)
4.窗体和世界的点的转化
相机的最大好处就是无需手动操作矩阵就可以移动游戏世界,所有的矩阵投影和观察点运算就是对开发者隐藏的。
相机的使用一般配合着mesh。mesh绘制一个矩形区域,然后将地图贴图在其上。
接下来的例子将使用一张图:
大小2048*2048.
代码如下:
?
注意这一句:
?
这是设置索引,我用一张图来说明。
0,1,2是指右上角的三角形
而2,3,0是左下角的三角形
图片分享:
玩家操作角色前进,后退,跳跃等,显示的世界(就是后面的背景)会不停变化。其实就是相机的观察点(视角)的改变引起的。
也许游戏的世界(背景地图)很大,比如10240*480,而设备的分辨率是800*480。现在游戏的角色在地图的最左侧,那么它的观察点就是(400,240)。
随着角色的向前移动,观察点也变化,通常是y值变大。
角色后退时y值变小。
角色跳跃时,x值变化。(其实地图可能要稍微高一点,比如500,这样角色的跳跃才会有效果)。
可以说相机是游戏开发的一个基本组件。而Libgdx的Stage类中就默认包含了一个Camera。
Camera类按照功能而言也有很多种,最常用的是OrthographicCamera(正投影相机),Stage中默认Camera的实现类为该类。
OrthographicCamera实现以下功能:
1.移动和旋转镜头
2.放大和缩小
3.改变观察点(视角)
4.窗体和世界的点的转化
相机的最大好处就是无需手动操作矩阵就可以移动游戏世界,所有的矩阵投影和观察点运算就是对开发者隐藏的。
相机的使用一般配合着mesh。mesh绘制一个矩形区域,然后将地图贴图在其上。
接下来的例子将使用一张图:
大小2048*2048.
代码如下:
?
?
0,1,2是指右上角的三角形
而2,3,0是左下角的三角形
相关文章推荐
- android游戏开发框架libgdx的使用(八)--相机和观察点
- android游戏开发框架libgdx的使用(八)--相机和观察点
- android游戏开发框架libgdx的使用(十八)—简单的AVG游戏效果实现
- android游戏开发框架libgdx的使用(十五)—TWL布局
- android游戏开发框架libgdx的使用(十)—双舞台
- Android游戏开发框架libgdx的使用
- android游戏开发框架libgdx的使用(十二)—TiledMap地图的使用
- android游戏开发框架libgdx的使用—使用TexturePacker工具
- android游戏开发框架libgdx的使用(七)--开发框架总观
- android游戏开发框架libgdx的使用(二十)—资源预加载与AssetManager的使用
- android游戏开发框架libgdx的使用(十四)—TiledMap中视角完善和障碍物处理
- android游戏开发框架libgdx的使用(二十四)—physics-body-editor配合Box2D加快开发
- android游戏开发框架libgdx的使用(二)--图形绘制
- android游戏开发框架libgdx的使用(十三)—TiledMap中的角色和角色移动
- android游戏开发框架libgdx的使用-安卓巴士教程地址汇总
- android游戏开发框架libgdx的使用(一)--环境搭建
- android游戏开发框架libgdx的使用(二十一)—使用TTF字库支持中文
- android游戏开发框架libgdx的使用(五)--舞台和常用UI类
- android游戏开发框架libgdx的使用(一)--环境搭建
- android游戏开发框架libgdx的使用(十四)—TiledMap中视角完善和障碍物处理