libgdx:[28]添加相机帮助
添加一个相机帮助类用来控制相机的各项属性
工具/原料
libgdx
eclipse
Adding CameraHelper 添加相机帮助类
1、现在我们需要实现一个叫做camerahelper的帮助类来协助我们实现管理和控制我们用来绘制游戏世界的camera的某一个特定的参数。这里是camerahelper的实现代码:。。。 代码请查看原书内容
![libgdx:[28]添加相机帮助](https://exp-picture.cdn.bcebos.com/38332303bbea3e86b53a5df05cd4483105eb55c5.jpg)
2、帮助类存储相机的座标值和缩放值。此外,当通过settarget()方法设置某一个对象为目标后,它可以跟叨斧杼镲随一个游戏对象。还可以把settarget设置为null来停止相机的追踪。用gettarget方法获得最后设置的对象。通常你可以通过设置null来检测target是否为某一个特定的sprite。这个检查被包裹在hasTarget()方法中并且它可以被使用在有一个或没有sprite参数的情况下。确定是否某个目标被选定。无论何时只要需要在每一个升级周期中update方法都会被调用来升级相机的坐标。applyTo()方法通常在rendering前被调用,来接收每一个帧的相机的新属性。
![libgdx:[28]添加相机帮助](https://exp-picture.cdn.bcebos.com/d695563104ebf6a7d47dbe98ffee1c324a184fc5.jpg)
Adding camera debug controls using CameraHelper 在调试控制中使用camera helper
1、 最后一步我们将添加一个camera的调试器,使用camerahelper类。这将会大大提高你的调试能力,因为你将自由地移动游戏世界,放大缩小,跟随游戏对像。在我们可以使用camerahelper之前,我们必须在worldcontroller中导入它:在那之后添加下面的代码到worldcontroller中:。。。 。。。
![libgdx:[28]添加相机帮助](https://exp-picture.cdn.bcebos.com/506d92f1d8a72633dcf6f150c02c56ee7a7f44c5.jpg)
2、Worldcontroller类现在有一个camerahelper的实例,是在update结尾被附加的init()中被初始化的。记得camerahelper的每个更新周期连续调用update()来确保它的内部也进行计算。在keyup()方法,我们添加了两个新的功能。第一个是相机辅助目标更新,依照新选择的精灵。其次,当按下Enter键,目标被切换和关闭。
![libgdx:[28]添加相机帮助](https://exp-picture.cdn.bcebos.com/732a12e265e7340fc00a289035b9763e20c2b4c5.jpg)
3、Additionally, add the following code to WorldRenderer:另外 把下面的代码添加到WorldRenderer。。。 。。。
![libgdx:[28]添加相机帮助](https://exp-picture.cdn.bcebos.com/40d2d0e8b004541b637dce95869a310e1699a6c5.jpg)
4、 在worldrender的rendertestobjects()方法的每一帧的开始Applyto()方法会被调用。它将会正确地设置传递过来的相机对照滠跋诵象。你可以在桌面项目启动游戏测试一下。实现相机的如下特性,只需要简单的按下enter键来切换状态。一个信息将被发送到控制台来告诉你现在处于一个什么状态。当camerafollow是可用的,用ADWS键来移动选定的sprite。不管怎么样相机会跟随你到每个地方,直到相机的follow被置为不可用时为止。
![libgdx:[28]添加相机帮助](https://exp-picture.cdn.bcebos.com/e86ba4b842406afe7866cd761eee41c1b6279fc5.jpg)
5、这里有两个新的代码块来控制相机的移动和缩放性能,在handledebuginput()方法中。对于被选定的sprite他们看起来相似工作方式也相似。按键的状态被检测,如果被按下,他们将执行各自的功能。Cameracontrols(移动)箭头键控制camera的移动当shift键被按下时运动级别被设置成500%按下退格键重设游戏世界的相机坐标为0,0Cameracontrols(缩放),和。号键控制camera的缩放级别当shift键被按下时级别被设置为500%(/)key重设缩放级别为 100%.
6、Movecamera()方法是为了实现通过调用sprite的translate()方法,执行相应的相机动作,跟moveselectedsprite()方法所做的相类似。
![libgdx:[28]添加相机帮助](https://exp-picture.cdn.bcebos.com/ad121888912ca5ca189aacfb8bfc77f7990e94c5.jpg)
7、概要:我们学习了如何建立峡谷兔子项目。我们使用了一个UML类图结构游戏分成可管理的逻辑块。第一类实现了对以后的扩展奠定基础的游戏。有关实现细节的讨论发生在一个渐进的和稳定的步伐,以便我们能学会从发展的过程作为一个整体而不是仅仅谈论事实。在下一章中,我们将聚集所有的峡谷兔子所需的资源,包括图形,音频文件,和关卡的数据。我们还将学习如何使用我们的游戏准备数据。