Android游戏引擎《Rokon》学习笔记三:精灵类Sprites的使用
来源:互联网 发布:山东出版社行知天下 编辑:程序博客网 时间:2024/05/22 15:05
欢迎来到第二篇Rokon教程()
在本教程里,你将会学习怎样添加一个精灵类,并且移动他们。
假定你已经有了一定的Java编程、Android编程的基础,如果没有,来这里(需翻墙,方法略)。
在这个教程里我将会用Eclipse作为开发工具,如果你用其他的开发工具,照样可以继续阅读。
我们继续上一节的“Hello World”教程,所以假定你已经学习过上一节的内容并且已经建立一个Rokon项目了。
(在教程的最后你将会下载到所涉及到的源码)
打开Eclipse转到Rokon项目。
本教程我们就爱那个会修改
‘GameScene’ 和 ‘Textures’这两个类。
我们来添加几个精灵类,因此我们需要家在另外的texture,所以在 TextTures类里,添加如下语句。
‘atlas.insert(bob = new Texture("bob.png"));’ 像这样:
- package com.rokonexamples.sprite;
- import com.stickycoding.rokon.Texture;
- import com.stickycoding.rokon.TextureAtlas;
- public class Textures {
- public static TextureAtlas atlas;
- public static Texture background, bob;
- public static void load() {
- atlas = new TextureAtlas();
- atlas.insert(background = new Texture("background.png"));
- atlas.insert(bob = new Texture("bob.png"));
- atlas.complete();
- }
- }
- public GameScene() {
- super(1, 3);
- setBackground(background = new FixedBackground(Textures.background));
- // Create the Bob sprites.
- bob = new Sprite(100, 220, Textures.bob.getWidth(), Textures.bob.getHeight());
- bob.setTexture(Textures.bob);
- bob2 = new Sprite(100, 180, Textures.bob.getWidth(), Textures.bob.getHeight());
- bob2.setTexture(Textures.bob);
- bob3 = new Sprite(100, 260, Textures.bob.getWidth(), Textures.bob.getHeight());
- bob3.setTexture(Textures.bob);
- // Add the Bob sprites to the first layer.
- add(0, bob);
- add(0, bob2);
- add(0, bob3);
- }
super()
’ 改为to ‘super(1, 3)
’, 意为我们会使用一个层,并且层里包含三个精灵。然后我们添加三个精灵到场景里。
bob = new Sprite(100, 220, Textures.bob.getWidth(), Textures.bob.getHeight());
bob.setTexture(Textures.bob);
bob2 = new Sprite(100, 180, Textures.bob.getWidth(), Textures.bob.getHeight());
bob2.setTexture(Textures.bob);
bob3 = new Sprite(100, 260, Textures.bob.getWidth(), Textures.bob.getHeight());
bob3.setTexture(Textures.bob);
方法里前两个参数为精灵的X和Y位置,第三个第四个参数为他们的大小,但由于我们不希望精灵被拉伸,所以我们要设置成和textures一样的尺寸。
请注意,你可以像我这样为多个精灵使用一个textures。
添加精灵到sence场景里。add(0, bob);
add(0, bob2);
add(0, bob3);
参数0的意思为添加到第一个层。因为我们只有一个层,所以可以写成 ‘add(bob)
’。
如果你现在运行项目,你将会看到一个和上一节一样的静态的背景,并且多了三个精灵。
现在让精灵们移动,我们需要用到 ‘onGameLoop()
’ 方法。
这个方法每帧都会被调用,你可以在里面更新游戏逻辑。所以添加 ‘onGameLoop()
’ 方法:
- public void onGameLoop() {
- bob.x += 1;
- if (bob.x >= MainActivity.GAME_WIDTH)
- {
- bob.x = 0;
- }
- bob2.rotate(2);
- }
我们让第二个精灵每帧旋转2度 ‘bob2.rotate(2)
’.
你也可以让精灵移动一段时间。
添加 ‘onReady()
’ 方法:
- public void onReady() {
- bob3.moveTo(450, 100, 5000);
- }
( 这种方法会让精灵移动到 x 450, y 100 ,用时 5000ms 即5 seconds)。
好了就这些,只需要添加到Bob图片到 assets/textures 文件夹下,运行。
如果一切正常,你将会看到下图(略)
- Android游戏引擎《Rokon》学习笔记三:精灵类Sprites的使用
- Android游戏引擎《Rokon》学习笔记六:一个使用Box2D的Rokon小例子:Rokon Donate
- Android游戏引擎《Rokon》学习笔记五:Modifiers修饰类的使用
- Android游戏引擎《Rokon》学习笔记一:为你的项目添加Rokon框架
- Android游戏引擎《Rokon》学习笔记二:HelloWorld
- Android游戏引擎《Rokon》学习笔记四:添加触摸控制
- Android游戏引擎《Rokon》
- Android游戏引擎《Rokon》:主要类和方法的介绍文档
- Android游戏引擎Rokon宣布停止更新
- Android 2D游戏引擎Rokon
- Android游戏引擎《Rokon》:常见问题汇总(2010.11.15更新)
- Android开源游戏引擎——Rokon
- Rokon游戏引擎第一讲
- Rokon游戏引擎第二讲
- Rokon游戏引擎第三讲
- Rokon游戏引擎第四讲
- Rokon游戏引擎第五讲
- ROkon游戏引擎第六讲
- E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录:解决办法
- My fstab(ubuntu 11.10)
- 给年轻的开发人士
- C# 搜索IP地址的地理位置
- Java之获取屏幕大小并将窗口居中显示!...
- Android游戏引擎《Rokon》学习笔记三:精灵类Sprites的使用
- 实现C#打印文档实例详解
- Android游戏引擎《Rokon》学习笔记四:添加触摸控制
- Android游戏引擎《Rokon》学习笔记五:Modifiers修饰类的使用
- Carrier IQ 手机间谍软件?
- quartz的作业调度触发Cron表达式说明
- mysql下的日志
- failed to create the SD card 解决方法
- linux curl命令详解