编程语言
首页 > 编程语言> > javascript-为什么我的精灵/实体不会直线移动?

javascript-为什么我的精灵/实体不会直线移动?

作者:互联网

我的实体应该朝着鼠标直线移动.已经很近了,但是还没到那儿.这是一个working demo,告诉您我的意思.

这是屏幕截图:

红色代表鼠标经过的路径.如您所见,实体没有采用相同的路径.

相关代码:

EntityPlayer = ig.Entity.extend({

    movementspeed: 400,

    update: function() {
        this.parent();
        this.move_toward_coord(ig.input.mouse.x, ig.input.mouse.y);
    },

    move_toward_coord: function(x, y) {
        var distance_to_target_x = x - this.pos.x - this.size.x / 2;
        var distance_to_target_y = y - this.pos.y - this.size.y / 2;
        if(Math.abs(distance_to_target_x) > 1 || Math.abs(distance_to_target_y) > 1) {
            this.vel.x = (distance_to_target_x > 1 ? 1 : -1) * this.movementspeed * (Math.abs(distance_to_target_x) / (Math.abs(distance_to_target_x) + Math.abs(distance_to_target_y)));
            this.vel.y = (distance_to_target_y > 1 ? 1 : -1) * this.movementspeed * (Math.abs(distance_to_target_y) / (Math.abs(distance_to_target_x) + Math.abs(distance_to_target_y)));
        } else {
            this.vel.y = 0;
            this.vel.x = 0;
        }
    }

});

我怀疑move_to_coord方法出问题了,但是调整了很多小时后,我仍然不确定它是什么…

为什么船不直线行驶?

解决方法:

gh!我在发布此消息几秒钟后就发现了.对不起这是我的错.这是因为有一个名为maxVel的属性,它限制了x或y速度上的速度,有时会限制另一个速度. >.<

标签:geometry,game-engine,javascript,math,impactjs
来源: https://codeday.me/bug/20191031/1974360.html