先检查一下调用函数的部分是不是写在了LOOP循环里面;
比如这种:
Laya.timer.loop(1,this,bulletsmove.monsterBulletsMove);
这样在monsterBulletsMove()里面的函数如果调用了自身,比如:this.isCollision();
这样执行到this.isCollision();时就会报错说找不到这个函数。
原因:
在这里的this是调用Loop时的那个[左边加粗的这个] : Laya.timer.loop(1,this,bulletsmove.monsterBulletsMove);
因为Loop里面第二个参数就是函数的作用域,这里填的是this的话就是最外面的那个作用域了。
解决方法:
当然可以使用这种方式:把作用域换成另外一个需要使用的参数,不使用this[下面加粗的这个];
比如: Laya.timer.loop(1,bulletsmove,bulletsmove.monsterBulletsMove);
推荐使用第二种解决方式:
写一个函数把调用放进去,就是下面这种!
Laya.timer.frameLoop(1, this, this.tet);
private tet(): void {
this._bulletsmove.playerBulletsMove();
}
emmmmmm,共勉!
网友评论