Javascript 这可能是什么原因造成的;“无人机”;在某些角度转弯时会感到紧张吗?
红点-无人机朝向Javascript 这可能是什么原因造成的;“无人机”;在某些角度转弯时会感到紧张吗?,javascript,triggers,artificial-intelligence,angle,Javascript,Triggers,Artificial Intelligence,Angle,红点-无人机朝向 橙色点-无人机向左或向右转弯时发出信号 青色点-如果无人机正在重新计算角度/进行三角测量,则发出信号 该代码确实包含一个部分,它可以帮助平滑,基本上只需设置鼠标的角度,如果可以从testDrone.turnSpeed变量在一帧内到达鼠标的角度 大约有一半的时间,它转动自如。另一半,它变得紧张不安,交替地向左和向右转动,并持续计算三角 原因可能是什么?不错的脚本: 我认为抖动可能是(帧速率(fps)+处理时间)和显示器刷新率之间差异的函数。我这样说是因为有时候它看起来很平滑,有时
橙色点-无人机向左或向右转弯时发出信号
青色点-如果无人机正在重新计算角度/进行三角测量,则发出信号 该代码确实包含一个部分,它可以帮助平滑,基本上只需设置鼠标的角度,如果可以从testDrone.turnSpeed变量在一帧内到达鼠标的角度 大约有一半的时间,它转动自如。另一半,它变得紧张不安,交替地向左和向右转动,并持续计算三角 原因可能是什么?不错的脚本: 我认为抖动可能是(帧速率(
fps
)+处理时间)和显示器刷新率之间差异的函数。我这样说是因为有时候它看起来很平滑,有时候有点粗糙,而且就鼠标的位置/移动而言,似乎没有什么特别的模式
您是否考虑过在setTimeout()
上使用requestAnimationFrame()
,哪个州
这将要求在浏览器执行下一次重新绘制之前调用动画函数。回调次数通常为每秒60次,但根据W3C建议,通常与大多数web浏览器中的显示刷新率相匹配。
请参阅的对关于限制requestAnimationFrame
对特定帧速率的调用的响应
希望有帮助。:) 脚本不错。:)
我认为抖动可能是(帧速率(fps
)+处理时间)和显示器刷新率之间差异的函数。我这样说是因为有时候它看起来很平滑,有时候有点粗糙,而且就鼠标的位置/移动而言,似乎没有什么特别的模式
您是否考虑过在setTimeout()
上使用requestAnimationFrame()
,哪个州
这将要求在浏览器执行下一次重新绘制之前调用动画函数。回调次数通常为每秒60次,但根据W3C建议,通常与大多数web浏览器中的显示刷新率相匹配。
请参阅的对关于限制requestAnimationFrame
对特定帧速率的调用的响应
希望有帮助。:) 修复的方法是确保角度实际重置为特定值,而不是在超过特定限值时由Pi递增/递减。这是我的一个设计错误,因为抖动消除对“高于”Pi或“低于”Pi的角度不起作用 这意味着要进入更新功能:
update: function (ctx) {
// reset angles below and above 2pi
while (this.angle > Math.PI)
this.angle = -Math.PI;
while (this.angle < -Math.PI)
this.angle = Math.PI;
更新:功能(ctx){
//重置2pi以下和以上的角度
而(this.angle>Math.PI)
this.angle=-Math.PI;
而(this.angle<-Math.PI)
this.angle=Math.PI;
修复的方法是确保角度实际重置为特定值,而不是在超过特定限制时由Pi增加/减少。这是我的设计错误,因为抖动消除对“高于”Pi或“低于”Pi的角度不起作用
这意味着要进入更新功能:
update: function (ctx) {
// reset angles below and above 2pi
while (this.angle > Math.PI)
this.angle = -Math.PI;
while (this.angle < -Math.PI)
this.angle = Math.PI;
更新:功能(ctx){
//重置2pi以下和以上的角度
而(this.angle>Math.PI)
this.angle=-Math.PI;
而(this.angle<-Math.PI)
this.angle=Math.PI;
我很感激,但如果我替换该函数,它不会改变抖动……我很感激,但如果我替换该函数,它不会改变抖动。。。
update: function (ctx) {
// reset angles below and above 2pi
while (this.angle > Math.PI)
this.angle = -Math.PI;
while (this.angle < -Math.PI)
this.angle = Math.PI;