基础

BK.Script 脚本工具

BK.Script 用来打印log、加载其他js脚本以及获取文件路径

BK.Script.log

打印log:

  1. BK.Script.log(0,0,"This is a log");

BK.Script.loadlib

加载其他js脚本:

  1. BK.Script.loadlib('GameRes://script/demo/tinyfly/terrain.js')

BK.Script.pathForResource

获取文件路径:

  1. BK.Script.pathForResource("test","js");

接口说明:BK.Script 工具

示例代码:script/demo/basics/script_demo.js

BK.Director 导演

通过 BK.Director 来获取屏幕比例、逻辑点、实际像素高宽以及根节点:

  1. //屏幕比例
  2. var scale = BK.Director.screenScale;
  3. //逻辑点
  4. var renderSize = BK.Director.renderSize;
  5. var width = renderSize.width;
  6. var height = renderSize.height;
  7. //实际像素高宽
  8. var pixelSize = BK.Director.screenPixelSize;
  9. var pWidth = pixelSize.width;
  10. var pWheight = pixelSize.height;
  11. //根节点
  12. var root =BK.Director.root;

附着一个物理引擎中的space至全局环境中:

  1. var space = new BK.Physics.Space({"x":0,"y":-100},123);
  2. BK.Director.attachSpace(space);

接口说明:BK.Director 导演

示例代码:script/demo/basics/director_demo.js

BK.Ticker 计时器

计时器

BK.Ticker.setTickerCallBack

设置定时回调函数:

  1. var t = new BK.Ticker();
  2. t.interval = 1;
  3. t. setTickerCallBack(function(ts,duration)
  4. {
  5. //定时回调
  6. });

BK.Ticker.dispose

销毁当前计时器:

  1. var t = new BK.Ticker();
  2. t.dispose();

BK.Director.ticker 主计时器

程序主计时器

BK.Director.ticker.add

添加一个方法回调至主循环中:

  1. //1.不绑定obj
  2. BK.Director.ticker.add(function(ts,duration){
  3. //do something
  4. });
  5. //2.将回调函数绑定至obj对象中,方便后续解除绑定
  6. var obj = {}
  7. BK.Director.ticker.add(function(ts,duration){
  8. //do something
  9. },obj);

BK.Director.ticker.remove

根据obj移除对应的回调函数。与add函数对应,当无需调用时,可根据add时传入的obj来移除回调:

  1. var obj = {}
  2. BK.Director.ticker.add(function(ts,duration){
  3. //do something
  4. },obj);
  5. BK.Director.ticker.remove(obj);

BK.Director.ticker.setTimeout

延迟回调函数。在延迟millsecond时间后,调用func函数:

  1. //延迟3秒后调用函数
  2. //1.不绑定对象
  3. BK.Director.ticker.setTimeout(function () {
  4. BK.Script.log(0,0,"Timeout call!2 curr = "+BK.Time.timestamp);
  5. },3000);
  6. //2.绑定对象
  7. var obj = {}
  8. BK.Director.ticker.setTimeout(function () {
  9. BK.Script.log(0,0,"Timeout call! curr = "+BK.Time.timestamp);
  10. },3000,obj);

BK.Director.ticker.removeTimeout

移除延迟回调函数。与setTimeout对应,移除obj绑定的延迟回调函数:

  1. var obj = {}
  2. BK.Director.ticker.setTimeout(function () {
  3. BK.Script.log(0,0,"Timeout call! curr = "+BK.Time.timestamp);
  4. },3000,obj);
  5. BK.Director.ticker.removeTimeout(obj);

注意事项

防止离开作用域后实例被js引擎销毁。

当BK.Ticker实例在一个作用域生成后,当程序的执行离开所在的作用域后,ticker实例会被js引擎回收。因此当使用ticker作为定时器时,需确保实例的生命周期是符合设计的。

例如下面的例子,当ticker对象离开loadTicker函数作用域后,ticker对象会被js引擎回收,定时器不会继续执行。

  1. function loadTicker() {
  2. var ticker = new BK.Ticker();
  3. ticker.interval = 2;
  4. ticker.setTickerCallBack(function(ts,duration)
  5. {
  6. BK.Script.log(0,0,"update");
  7. })
  8. }
  9. loadTicker();

接口说明:BK.Ticker 计时器

示例代码:script/demo/basics/ticker_demo.js

原文: https://hudong.qq.com/docs/engine/engine/native/func/funcs/basic.html