多语言展示
当前在线:1489今日阅读:27今日分享:41

libgdx:[39]水平面和云的绘制

此篇介绍关于游戏中水平面的绘制,以及云层的绘制。
工具/原料

libgdx

The water overlay object 水平面对象
1

跟前面的游戏对象相比,水平面的对象相当的简单,他只有一个图片,这个图片需要覆盖所有的整个level(我理解为关卡场景)的地面。有几个方法可以实现这种效果。其中一个是让水平面的图片横跨相机的视窗,水平面图片跟随相机移动到任何地方。这样会造成一种水平面充满整个游戏世界的错觉。这是一个很好的实现方法,但是不幸的是如果相机会经常在垂直方向上移动的话,这将会要求我们做很多的特殊处理。另外一种实现的方法是把水平面的图片从游戏世界的开始绘制到游戏世界的结束,一直重复这中效果会用我们下面的代码实现:

2

Create a new file for the WaterOverlayclass and add the following code:创建一个新的文件:WaterOverlay类,并添加如下代码:WaterOverlay类的创建跟前面的游戏对象很相似。。。。 。。。

The clouds object 云层对像
1

云层对象包含一定数量的云。一个云的对象将会使用纹理图集中的三个可用的云的图片中的一个。最终的云的个数由一个分离出来的 常量来决定,这个常量决定最终的云层的分布。下面的截屏就是这种效果。

2

Create a new file forthe Cloudsclass and add the following code:创建一个新的文件命名为 Clouds 类并添加如下代码:。。。 。。。

3

Clouds类的构建跟前面的游戏对象相似。云层的分布有给定的length 变量和 distFact 常量来决定--我们的代码中使用的是 5.这就意味着每5米就会有一个云的对象。 每一个单独的云由Clouds类的内部类Cloud类描绘,这个类同样继承自AbstractGameObject类。所以呢一个Cloud对象是一个正在的云对象,同时Clouds只是一个现在已经创建的云的对象的容器。一个新的云的对象可以通过简单的调用Clouds的spawnCloud()方法来创建。这将会创建一个新的Cloud对象,并分配给它一个随机的云的图片,它会向level的后面移动,同时会有一个随机的上下浮动出现。新创建的云的对对象会被添加到云层队列中去,返回给调用它(spawnCloud)的方法。

注意事项

需查阅 learning libgdx game development

推荐信息