如何在Javascript中获取图像的中心?

时间:2016-07-30 15:13:42

标签: javascript html canvas

我正在制作一个我有移动物体的人,每个物体都附有一个图像,但我不知道如何将它们从中心而不是左上角移动。

这是玩家:

function Player() {
    this.height = 167.5;
    this.width = 100;
    this.pos_x = 350;
    this.pos_y = 425;
    this.player_image = new Image();
    this.player_image.src = 'img/player_car_img.png';
};

及其方法"移动":

Player.prototype.move = function(){
    if (37 in keysDown) {
        this.pos_x -= 10;
    }  else if (39 in keysDown) {
        this.pos_x += 10;
    }
};

1 个答案:

答案 0 :(得分:2)

我不知道你在哪里画这幅影像,但我会用你已经拥有的东西,只是把图像画在不同的位置。

你可以在你的位置周围绘制图像(以Player.pos_xPlayer.pos_y为中心点,而不是左上角),从初始位置取下一半图像尺寸,如下所示:

Y = Y location - (image height / 2)
X = X location - (image width / 2)

在实际代码中,这看起来像是:

var x = Player.pos_x - Player.player_image.width/2;
var y = Player.pos_y - Player.player_image.height/2;
ctx.drawImage(Player.player_image, x, y); 

这样,您的Player.pos_xPlayer.pos_y保持在同一位置,但图像将被绘制在"周围"那个中心。