찾다

 >  Q&A  >  본문

createjs 小游戏点击画布内对象 卡顿

做了一个很简单小游戏,东西上升,点击后消失,用的框架是createjs。但发现在微信端点击游戏里面的对象时会有短暂的卡顿 不知道是代码写的哪里不对影响性能了,并且andriod 在微信里看的时候对象上升也会有一些卡顿。求优化方式 谢谢核心游戏代码

var canvas = document.getElementById("canvas");
var stage = new createjs.Stage(canvas);
createjs.Touch.enable(stage);
var container = new createjs.Container();
stage.addChild(container);
for (var i = 0; i < 10; i++) {
    var ball = new createjs.Bitmap(queue.getResult("ball"));
           ball.point = 30;
        ball.speed = 4;
        ball.x = (canvas.width-100) * Math.random();
        ball.y = canvas.width+50*Math.random()*20;
        ball.cursor = "pointer";
        ball.on("mousedown", function () {
            this.visible = false;

        });
    container.addChild(ball);
    stage.addChild(container);
    
}
createjs.Ticker.timingMode = createjs.Ticker.RAF;
createjs.Ticker.setFPS(60);
createjs.Ticker.addEventListener("tick", tick);
function tick(event) {
var l = container.getNumChildren() ;
for (var i = 0; i < l; i++) {
    shape = container.getChildAt(i);
    shape.y = shape.y-shape.speed;
    if(shape.y<-250||!shape.visible){
       shape.x = (canvas.width-150) * Math.random();
       shape.y = canvas.height;
       shape.visible = true;
    }
}
stage.update(event);

线上地址 http://1.snackwei.sinaapp.com/gameDemo/


高洛峰高洛峰2952일 전852

모든 응답(1)나는 대답할 것이다

  • 三叔

    三叔2016-10-28 10:42:59

    我试了下,不卡啊。。
    最多就是把循环里面的Ticker那段代码拿出来吧。。
    不了解createjs,有错请见谅

    회신하다
    0
  • 취소회신하다