PushButton引擎学习笔记2

 

(此文为转载,原出处不详,而由于某种原因只通过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组件里属性的方法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值