[]模拟石头下落过程不明抖动


Screenshot_2018-02-26-17-54-57-756_com.tencent_.qq_.png

已经使用了对象池了,做到最优化了,目前看到的帧频是满帧的 60.但是整体画面有不能忍受的抖动,我是仿造 snakeVsBlock游戏来做的,他的就不会,明明cpu是没有问题的,也挺低的,就是整个画面会抖动,然后我的附件里面是一个mp4的视频,可以拿下来观察看看,下面贴上代码
import  './aui/aui';
import { Game } from './public/Game';
import Stage = Laya.Stage;



export class TexasMain{
private balls:Laya.Sprite = ;
constructor(){
Config.isAntialias = true
// alert("宽"+Laya.Browser.clientWidth+"高"+Laya.Browser.clientHeight );
// Laya.init(Laya.Browser.clientWidth,Laya.Browser.clientHeight, Laya.WebGL );
Laya.init(720,1280,Laya.WebGL);
Laya.stage.alignH = Stage.ALIGN_CENTER;
Laya.stage.alignV = Stage.ALIGN_MIDDLE;
fairygui.UIConfig.defaultFont = "微软雅黑";
Laya.stage.scaleMode = Stage.SCALE_FIXED_WIDTH;
Laya.stage.screenMode = Stage.SCREEN_VERTICAL;
//设置横竖屏
Laya.stage.bgColor = "#232628";

// Laya.stage.frameRate = "show";
//注册扩展时需要用到的类
/**初始化顶层游戏类 */

// laya.utils.Stat.show(0,0);
// window.onerror = function(message,url,line){
// alert("执行" + url + "文件中的第" + line + "行代码出错,错误信息:" + message);
// };
// Game.inst.start();
setInterval( this.addball.bind( this ),500);
}



public addball(){
for( let i:number = 0 ; i < 6; i++){

let ball = this.getObj();
ball.x = (i%6) *150
ball.y = -200
Laya.Tween.to( ball,{y: 1500 } ,5000,Laya.Ease.linearOut,Laya.Handler.create(this,this.removeball,[ball]));
Laya.stage.addChild( ball );
}
}




public removeball( ball:Laya.Sprite ){
Laya.stage.removeChild(ball);
// console.log("rmove ball")
}

public getObj():Laya.Sprite {

for( let i:number = 0 ; i < this.balls.length;i++ ){
if( !this.balls[i].parent ){
return this.balls[i];
}
}


let ball = new Laya.Sprite();
ball .graphics.drawRect( 0,0,140,140,"#d9d919");
this.balls.push( ball );
return ball;

}


}
new TexasMain();
[/i][/i]
已邀请:

Aar0n

赞同来自:

这个最好别用tween, tween 就没有 匀速直线运动, 最好用脚本 定时更新位置就平滑了

monkeyzheng

赞同来自:

你的意思 是否是用 Laya的 frameloop 来update 位置,木有用,我试过了,还是一样的情况

182*****577

赞同来自:

我也遇到了类似问题,运动物体抖动,不知道老哥解决没有

要回复问题请先

商务合作
商务合作