PushButton引擎学习笔记2
2010-03-31 11:43
363 查看
(此文为转载,原出处不详,而由于某种原因只通过CSDN的BLOG在不同地点不同网域共享信息,如有不妥请告知,抱歉)
上一篇用PBE在舞台上画了一个矩形,今天我们来让该矩形动起来。
1,大概思路:编写一个能控制该矩形动的component,然后将该component关联到该矩形上;
2,编写自定义的component。可继承的component有AnimatedComponent, BasicSpatialManager2D, Box2DManagerComponent, Box2DSpatialComponent, DataComponent, EventSoundTrigger, GoogleSpreadsheetTweaker, GroupManagerComponent, GroupMemberComponent, HealthComponent, MachineDescription, MultiSpriteSheetHelper, SpriteContainerComponent, ThinkingComponent, TickedComponent,而这些都是继承EntityComponent的,EntityComponent是所有component类的基类。这里我们要改变矩形的坐标位置,选择继承自TickedComponent,文档中对TickedComponent类的解释是:需要每一个tick都表现状态的组件的基类,用Flash的话说,就是需要每一帧去表现其不同形态、位置、大小等的基类。
package
{
import
com.pblabs.engine.components.TickedComponent;
import
com.pblabs.engine.entity.PropertyReference;
import flash.geom.Point;
import com.hexagonstar.util.debug.Debug;
/**
* ...
* @author
luoyuqiang
*/
public class DemoControllerComponent extends
TickedComponent
{
//保存对矩形的Spatial组件中的position属性的引用
public var positionReference:PropertyReference = new
PropertyReference("@Spatial.position");
//方向变量
private var
direction:int = 1;
// 每一帧运行一次onTick()
public override
function onTick(tickRate:Number):void
{
try {
var
position:Point = owner.getProperty(positionReference) as Point;
//是否到最左边
if (position.x <=-300) {
direction =
1;
position.y += 20;
}
//是否到最右边
else if (position.x
>=300) {
direction = -1;
position.y += 20;
}
position.x += direction * 5;
owner.setProperty(positionReference,
position);
}catch (err:Error) {
Debug.trace(err.message)
}
}
}
}
跟前一篇的代码结合起来,将得到从上至下、从左到右或从右到左循环移动的矩形。
总结:关键是理解组件在PBE中起到的作用,以及其跟Entity的关系,和获取、设置Entity组件里属性的方法。
上一篇用PBE在舞台上画了一个矩形,今天我们来让该矩形动起来。
1,大概思路:编写一个能控制该矩形动的component,然后将该component关联到该矩形上;
2,编写自定义的component。可继承的component有AnimatedComponent, BasicSpatialManager2D, Box2DManagerComponent, Box2DSpatialComponent, DataComponent, EventSoundTrigger, GoogleSpreadsheetTweaker, GroupManagerComponent, GroupMemberComponent, HealthComponent, MachineDescription, MultiSpriteSheetHelper, SpriteContainerComponent, ThinkingComponent, TickedComponent,而这些都是继承EntityComponent的,EntityComponent是所有component类的基类。这里我们要改变矩形的坐标位置,选择继承自TickedComponent,文档中对TickedComponent类的解释是:需要每一个tick都表现状态的组件的基类,用Flash的话说,就是需要每一帧去表现其不同形态、位置、大小等的基类。
package
{
import
com.pblabs.engine.components.TickedComponent;
import
com.pblabs.engine.entity.PropertyReference;
import flash.geom.Point;
import com.hexagonstar.util.debug.Debug;
/**
* ...
* @author
luoyuqiang
*/
public class DemoControllerComponent extends
TickedComponent
{
//保存对矩形的Spatial组件中的position属性的引用
public var positionReference:PropertyReference = new
PropertyReference("@Spatial.position");
//方向变量
private var
direction:int = 1;
// 每一帧运行一次onTick()
public override
function onTick(tickRate:Number):void
{
try {
var
position:Point = owner.getProperty(positionReference) as Point;
//是否到最左边
if (position.x <=-300) {
direction =
1;
position.y += 20;
}
//是否到最右边
else if (position.x
>=300) {
direction = -1;
position.y += 20;
}
position.x += direction * 5;
owner.setProperty(positionReference,
position);
}catch (err:Error) {
Debug.trace(err.message)
}
}
}
}
跟前一篇的代码结合起来,将得到从上至下、从左到右或从右到左循环移动的矩形。
总结:关键是理解组件在PBE中起到的作用,以及其跟Entity的关系,和获取、设置Entity组件里属性的方法。
相关文章推荐
- PushButton引擎学习笔记1
- Android开发学习笔记:圆角的Button
- cocos2d学习笔记(九)物理引擎box2d之三
- odoo10学习笔记八:qweb引擎
- MySQL学习笔记(四):存储引擎的选择
- 动力学仿真引擎ODE的学习笔记,C#演示(一)
- Android开发学习笔记:浅谈ToggleButton
- 雾山的Anrdoid学习笔记---CheckBox,RadioGroup&RadioButton .
- play framework学习笔记之 模板引擎
- Cocos2d-x学习笔记(十二)-------->x引擎的数据保存
- Android -- Button [ 学习笔记 一 ] 原创
- 【Cocos2d-html5游戏引擎学习笔记(11)】运动中速度效果
- Cocos2d-x学习笔记(十五)-------->物理引擎
- Away3D引擎学习笔记(二)CameraController相机控制的应用
- cocos2d-x 3.0开发笔记---物理引擎封装 Physics深入学习
- [Unity 3D] 物理引擎学习笔记(一)
- Sandy引擎学习笔记: 三维效果初试
- Coolite Toolkit学习笔记三:基本控件之Button、TextField、DataField、ComBox
- Sandy引擎学习笔记:导入MD2模型
- cocos2d游戏引擎学习笔记(初识框架结构和内存规划)