多语言展示
当前在线:832今日阅读:167今日分享:16

libgdx:[28]添加相机帮助

添加一个相机帮助类用来控制相机的各项属性
工具/原料
1

libgdx

2

eclipse

Adding CameraHelper 添加相机帮助类
1

现在我们需要实现一个叫做 camera helper 的帮助类来协助我们实现管理和控制我们用来绘制游戏世界的camera的某一个特定的参数。这里是camera helper 的实现代码:。。。 代码请查看原书内容

2

帮助类存储 相机的座标值和缩放值。此外,当通过settarget()方法设置某一个对象为目标后,它可以跟随一个游戏对象。还可以把set target设置为null来停止相机的追踪。用get target 方法获得最后设置的对象。通常你可以通过设置null来检测target是否为某一个特定的sprite。 这个检查被包裹在hasTarget() 方法中并且它可以被使用在有一个或没有sprite参数的情况下。确定是否某个目标被选定。 无论何时只要需要在每一个升级周期中update方法都会 被调用来升级相机的坐标。 applyTo()方法通常在rendering前被调用,来接收每一个帧的相机的新属性。

Adding camera debug controls using CameraHelper 在调试控制中使用camera helper
1

最后一步我们将添加一个camera的调试器,使用camera helper类。这将会大大提高你的调试能力,因为你将自由地移动游戏世界,放大缩小,跟随游戏对像。在我们可以使用camera helper之前,我们必须在 world controller中导入它:在那之后添加下面的代码到world controller中:。。。 。。。

2

World controller 类现在有一个camera helper的实例,是在update 结尾被附加的init()中被初始化的。记得camerahelper的每个更新周期连续 调用update()来确保它的内部 也进行计算。在keyup()方法,我们添加了两个新的功能。第一个是相机辅助目标更新,依照新选择的精灵。其次,当按下Enter键, 目标被切换和关闭。

3

Additionally, add the following code to WorldRenderer:另外 把下面的代码添加到 WorldRenderer 。。。 。。。

4

在world render的 render test objects()方法的每一帧的开始Apply to ()方法会被调用。它将会正确地设置传递过来的相机对象。你可以在桌面项目启动游戏测试一下。实现相机的如下特性,只需要简单的按下 enter键来切换状态。一个信息将被发送到控制台来告诉你现在处于一个什么状态。当camera follow 是可用的,用ADWS键来移动选定的sprite。不管怎么样相机会跟随你到每个地方,直到相机的follow 被置为不可用时为止。

5

这里有两个新的代码块来控制相机的移动和缩放性能,在 handle debug input ()方法中。对于被选定的sprite他们看起来相似工作方式也相似。按键的状态被检测,如果被按下,他们将执行各自的功能。Camera controls (移动)箭头键控制camera的移动当shift键被按下时运动级别被设置成500%按下 退格键 重设游戏世界的相机坐标为0,0Camera controls (缩放),和。号键控制camera的缩放级别当shift键被按下时级别被设置为500% (/) key 重设缩放级别为 100 %.

6

Move camera () 方法是为了实现通过调用sprite 的translate()方法,执行相应的相机动作,跟move selected sprite()方法所做的相类似。

7

概要:我们学习了如何建立峡谷兔子项目。我们使用了一个 UML类图结构游戏分成可管理的逻辑块。第一类实现了对以后的扩展奠定基础 的游戏。有关实现细节的讨论发生在一个渐进的和 稳定的步伐,以便我们能学会从发展的过程作为一个整体而不是 仅仅谈论事实。 在下一章中,我们将聚集所有的峡谷 兔子所需的资源,包括图形,音频文件,和关卡的数据。我们还将学习如何 使用我们的游戏准备数据。

注意事项

由于代码重复造成文章无法通过百度的检测所以所有的代码都用省略号替代,代码请参照原书查看-learning libgdx game development

推荐信息