多语言展示
当前在线:1628今日阅读:126今日分享:42

libgdx:[37]创建石头对象

开始游戏对象的创建-石头对象
工具/原料

libgdx

The rock object 石头对象
1

石头对象是由三部分组成的:左边部分、中间部分、和右边部分。中间部分比较特别,它可以通过使用不同数量的中间部分连接在一起来创建不同长度的石头对象。石头的右边部分可以通过使用左边的部分简单的镜像旋转得到。这就意味着我们要创建不同长度的石头对象只需要在纹理图集中存储两个纹理图片就可以完成这项工作。

2

创建一个新文件类 命名为:Rock,并添加如下代码:... ...

3

Rock 类有两个变量regEdgeand 、 regMiddle用来存储相应的石头的边缘和中间部分的纹理图。另外有一个length 变量用来描述石头的中间部分的数量,或者说是最终的石头对象的长度。在init()方法中我们设置石头的初始尺寸:宽度和高度。要记住他们的单位都是米 这样跟游戏世界关联起来。在我们的例子中石头的高度是1.5米。石头的纹理图被存储在本地变量中,这并不是必要的,我们这么做只是为了我们方便,能够方便的替换纹理图片。最后 setLength()方法被调用来设置石头的最初长度,increaseLength()方法被用来使用给定的数字来设置石头的长度。这样对于我们已经实现的level加载器来创建一个石头的对象将是很方便的。

4

由于Rock 继承自AbstractGameObject,它需要显示地实现render()方法。添加如下代码到Rock类中:... ...

6

这个方法根据 从texture(我们这里是 texture atlas)裁剪出一个由 ( srcX, srcY, srcWidth, and srcHeight) 定义的矩形并把他绘制到指定的点 (x, y). 处。(originX, originY)定义了矩形的起始坐标点,如果在(0, 0) 处则表示从最左下角的点开始。宽和高 定义了要绘制的图片的尺寸。缩放因子定义了矩形围绕 origin的缩放比例。(flipX, flipY)表示把图片以x 或y轴做镜像反转。

7

石头的绘制工作被分为三个步骤来完成:1 .在当前的点上绘制石头的左边的部分。一个相对 x- 和y-值,relX 和relY 与当前点的值相加。这样处理可以使石头的左边部分与当前点的y轴在一条线上。这样以来石头的中间部分将会从当前点的x坐标+relx(relx=0)开始,这种结果对处理石头的中间部分非常容易,因为在level 图片中每个代表石头的像素都只代表石头的中间部分,而石头的边只是一个装饰品。2.按照对石头的长度的设置绘制石头的中间部分,绘制工作从0开始,这紧挨着石头的左边的边缘。每个后面的部分紧跟着上一个中间部分的边。3.最后是绘制把左边部分的镜像绘制到最后一个中间部分的后边。镜像通过把flipX 的值设置为true 得到。reg 变量用来存储每一步中当前选中的纹理图。

注意事项

省略的代码请参照 learning libgdx game development

推荐信息