`
deepfuture
  • 浏览: 4333365 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:79428
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:68376
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:101498
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:281206
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14608
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:65559
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:31320
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45206
社区版块
存档分类
最新评论

flex游戏引擎(PushBotton)-执行流

阅读更多

PushButton Engine不会主动执行主循环从而控制你的游戏,你必须要亲自启动它

Engine Startup

如果你使用PushButton Engine MXML tags,在程序启动时尽可能早地处理,层相关的tags在应用程序事件结束后处理,资源 相关的tags在被flex加载时立刻被处理 - usually in the first few frames.
     为了管理这些tag,ResourceManager, LevelManager, and other managers也许被初始化和创建
    如果你手动启动游戏,直接调用管理者,不使用标签。
   ProcessManager管理着主循环和回调函数,并允许你设置回调对象的相关优先级
   Frame Callbacks框架回调在IAnimatedObject接口中发生,简单执行IAnimatedObject interface,调用ProcessManager.instance.addAnimatedObject(this),如:

   // Example of a component that receives per-frame callbacks.
   public class DemoAnimatedComponent extends EntityComponent implements IAnimatedObject
   {
      public function onFrame(elapsed:Number):void
      {
         trace("Frame happened, and " + elapsed + "ms passed since last time.");
      }
     
      protected override function onAdd():void
      {
         ProcessManager.instance.addAnimatedObject(this);
      }
     
      protected override function onRemove():void
      {
         ProcessManager.instance.removeAnimatedObject(this);
      }
   }

PBLabs.Engine.Components.AnimatedComponent帮你自动注册和注销活跃对象,并可以设置优先级
Ticks
Ticks确保在固定间隔发生,ProcessManager负责产生Ticks,相当一个计时器,在onTick回调时,执行自己的代码。

   // Example of a component which receives tick callbacks.
   public class DemoTickedComponent extends EntityComponent implements ITickedObject
   {
      public function onTick(tickRate:Number):void
      {
         trace("A tick happened!");
      }
     
      protected override function onAdd():void
      {
         ProcessManager.instance.addTickedObject(this);
      }
     
      protected override function onRemove():void
      {
         ProcessManager.instance.removeTickedObject(this);
      }
   }

TickedComponent基类简单创建一个产生ticks的组件

ProcessManager,在第个frame(框架)的开始处(the ENTER_FRAME事件),做以下工作:
ProcessManager产生:IAnimatedObject回调、tick回调ITickedObject onTick、待定事件
Process IAnimatedObject callbacks.
Process any pending ticks by calling ITickedObject onTick zero or more times.
Process any pending events.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics