Android游戏引擎《Rokon》学习笔记五:Modifiers修饰类的使用
来源:互联网 发布:山东出版社行知天下 编辑:程序博客网 时间:2024/05/21 19:32
欢迎来到第四篇Rokon教程()
在本教程里 ,你将会学习怎样添加使用Modifiers修饰类。
假定你已经有了一定的Java编程、Android编程的基础,如果没有,来这里(需翻墙,方法略)。
在这个教程里我将会用Eclipse作为开发工具,如果你用其他的开发工具,照样可以继续阅读。
我们继续上一节的教程,所以假定你已经学习过上一节的内容并且已经建立一个Rokon项目了。
(在教程的最后你将会下载到所涉及到的源码)
你可以给Sprite添加一个修饰类,添加一些临时的效果。比如被攻击时显示红色闪动效果。
打开Eclipse进入到Rokon项目里。
新建一个ColorModifier.java类。
我倾向于吧所有的修饰类放到一个独立的包中来保持项目的有组织性。但这是可选的。
ColorModifier.java类如下:
- package com.rokonexamples.modifier.modifiers;
- import com.stickycoding.rokon.Modifier;
- import com.stickycoding.rokon.Sprite;
- public class ColorModifier extends Modifier {
- private float color;
- @Override
- public void onStart(Sprite sprite) {
- color = 0;
- }
- @Override
- public void onUpdate(Sprite sprite) {
- // Here you can do anything to the sprite, like move it or whatever.
- // But we will just do a simple color modification.
- sprite.setRGB(1, color, color);
- color += 0.1;
- // When the sprite's original colors has been restored, end it.
- if (color >= 1)
- end();
- }
- @Override
- public void onEnd(Sprite sprite) {
- sprite.setRGB(1, 1, 1);
- }
- }
'onStart()
' modifier 开始时此方法被调用。你也可以爱这里重置。
'onUpdate()
' 当modifier为活动时,此方法每一帧都会被调用。
你可以这样修饰你的Sprites:
sprite.setRGB(1, color, color);
这个语句的作用是改变Sprite的颜色。 (1, 1, 1) 为正常的颜色。(0, 0, 0) 则完全为黑色。
这个modifier的作用是设置sprite为红色。一段时间后恢复正常色。
当恢复到正常色后,modifier修饰类会把自己从sprite类删除,然后调用end()方法。
sprite.setRGB(1, 1, 1);
恢复sprite到正常的颜色。
好了,现在把这个modifier添加到sprite上。
打开你的GameScene类,替换如下:
- package com.rokonexamples.modifier;
- import android.view.MotionEvent;
- import com.rokonexamples.modifier.modifiers.ColorModifier;
- import com.stickycoding.rokon.Scene;
- import com.stickycoding.rokon.Sprite;
- import com.stickycoding.rokon.background.FixedBackground;
- public class GameScene extends Scene {
- private FixedBackground background;
- private Sprite bob;
- private ColorModifier modifier;
- public GameScene() {
- super(1, 1);
- setBackground(background = new FixedBackground(Textures.background));
- // Create the Bob sprite
- bob = new Sprite(100, 220, Textures.bob.getWidth(), Textures.bob.getHeight());
- bob.setTexture(Textures.bob);
- // Add the Bob sprite to the first layer.
- add(0, bob);
- // And create the modifier.
- modifier = new ColorModifier();
- }
- @Override
- public void onGameLoop() {
- }
- @Override
- public void onTouchUp(float x, float y, MotionEvent event, int pointerCount, int pointerId) {
- // Add your modifier to the sprite.
- bob.addModifier(modifier);
- }
- @Override
- public void onPause() {
- }
- @Override
- public void onResume() {
- }
- @Override
- public void onReady() {
- }
- }
modifier = new ColorModifier();
bob.addModifier(modifier);
他们的作用非常明显,第一句建立,第二句添加到精灵类每次当你触摸屏幕的时候。
需要记住的是,modifier一旦被创建可以重复利用。
如果你每次都新生成modifier到你的sprite里,那么会给gc带来很大的工作量,游戏也会有些停滞的感觉。
(或许你不会注意到这个小差异)
好了,如果你运行这个程序,每次按下屏幕的时候,你的精灵会变红。
如果一切正常你将会看到(略)
- Android游戏引擎《Rokon》学习笔记五:Modifiers修饰类的使用
- Android游戏引擎《Rokon》学习笔记六:一个使用Box2D的Rokon小例子:Rokon Donate
- Android游戏引擎《Rokon》学习笔记三:精灵类Sprites的使用
- 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游戏引擎第六讲
- 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命令详解
- SQL Server 视图创建点滴
- Magento配置Paypal
- magic_quotes_runtime 的作用