3

私のエンティティは、マウスに向かって直線的に移動することになっています。近いですが、まだ完全ではありません。これが私が何を意味するかを示すための実用的なデモです。

そして、これがスクリーンショットです: エンティティが直線的に移動していません。 赤はマウスがたどった経路を表しています。ご覧のとおり、エンティティは同じパスをたどりません。

関連コード:

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思いますが、何時間も調整した後でも、それが何であるかはわかりません...

なぜ船は直進しないのですか?

4

1 に答える 1

4

うーん!私はこれを投稿してから文字通り数秒でそれを理解しました。すみません、悪いです。これは、または速度maxVelのいずれかで速度を制限しているというプロパティが原因でした。>。<xy

于 2013-02-15T07:32:58.600 に答える