基础
BK.Script 脚本工具
BK.Script 用来打印log、加载其他js脚本以及获取文件路径
BK.Script.log
打印log:
BK.Script.log(0,0,"This is a log");
BK.Script.loadlib
加载其他js脚本:
BK.Script.loadlib('GameRes://script/demo/tinyfly/terrain.js')
BK.Script.pathForResource
获取文件路径:
BK.Script.pathForResource("test","js");
接口说明:BK.Script 工具
示例代码:script/demo/basics/script_demo.js
BK.Director 导演
通过 BK.Director 来获取屏幕比例、逻辑点、实际像素高宽以及根节点:
//屏幕比例
var scale = BK.Director.screenScale;
//逻辑点
var renderSize = BK.Director.renderSize;
var width = renderSize.width;
var height = renderSize.height;
//实际像素高宽
var pixelSize = BK.Director.screenPixelSize;
var pWidth = pixelSize.width;
var pWheight = pixelSize.height;
//根节点
var root =BK.Director.root;
附着一个物理引擎中的space至全局环境中:
var space = new BK.Physics.Space({"x":0,"y":-100},123);
BK.Director.attachSpace(space);
接口说明:BK.Director 导演
示例代码:script/demo/basics/director_demo.js
BK.Ticker 计时器
计时器
BK.Ticker.setTickerCallBack
设置定时回调函数:
var t = new BK.Ticker();
t.interval = 1;
t. setTickerCallBack(function(ts,duration)
{
//定时回调
});
BK.Ticker.dispose
销毁当前计时器:
var t = new BK.Ticker();
t.dispose();
BK.Director.ticker 主计时器
程序主计时器
BK.Director.ticker.add
添加一个方法回调至主循环中:
//1.不绑定obj
BK.Director.ticker.add(function(ts,duration){
//do something
});
//2.将回调函数绑定至obj对象中,方便后续解除绑定
var obj = {}
BK.Director.ticker.add(function(ts,duration){
//do something
},obj);
BK.Director.ticker.remove
根据obj移除对应的回调函数。与add函数对应,当无需调用时,可根据add时传入的obj来移除回调:
var obj = {}
BK.Director.ticker.add(function(ts,duration){
//do something
},obj);
BK.Director.ticker.remove(obj);
BK.Director.ticker.setTimeout
延迟回调函数。在延迟millsecond时间后,调用func函数:
//延迟3秒后调用函数
//1.不绑定对象
BK.Director.ticker.setTimeout(function () {
BK.Script.log(0,0,"Timeout call!2 curr = "+BK.Time.timestamp);
},3000);
//2.绑定对象
var obj = {}
BK.Director.ticker.setTimeout(function () {
BK.Script.log(0,0,"Timeout call! curr = "+BK.Time.timestamp);
},3000,obj);
BK.Director.ticker.removeTimeout
移除延迟回调函数。与setTimeout对应,移除obj绑定的延迟回调函数:
var obj = {}
BK.Director.ticker.setTimeout(function () {
BK.Script.log(0,0,"Timeout call! curr = "+BK.Time.timestamp);
},3000,obj);
BK.Director.ticker.removeTimeout(obj);
注意事项
防止离开作用域后实例被js引擎销毁。
当BK.Ticker实例在一个作用域生成后,当程序的执行离开所在的作用域后,ticker实例会被js引擎回收。因此当使用ticker作为定时器时,需确保实例的生命周期是符合设计的。
例如下面的例子,当ticker对象离开loadTicker函数作用域后,ticker对象会被js引擎回收,定时器不会继续执行。
function loadTicker() {
var ticker = new BK.Ticker();
ticker.interval = 2;
ticker.setTickerCallBack(function(ts,duration)
{
BK.Script.log(0,0,"update");
})
}
loadTicker();
接口说明:BK.Ticker 计时器
示例代码:script/demo/basics/ticker_demo.js
原文: https://hudong.qq.com/docs/engine/engine/native/func/funcs/basic.html