通过 replace() 和正则表达式替换对象的字符串路径导致错误

Replacing string path of object via replace() and regex causing errors

我正在尝试制作一款玩家持有武器的游戏,但武器的类型可以改变。我正在尝试为每个武器设置一个“material”或特征,这应该会改变图像的路径,以便将正确的图像绘制到屏幕上。但是,它似乎不起作用。这是我当前的代码:

let magnet_image = new Image();
magnet_image.src = "assets/images/weapons/magnet.png";

magnet = new Weapon(magnet_image);

class Weapon {

    image_path;

    constructor (image_path) {

        image_path.src.replace(/magnet/gi, "magnet_black");
        console.log(image_path)

        this.x = player.x + player.width / 2;
        this.y = player.y + player.height / 2;
        this.width = 50;
        this.height = 50;
        this.angle = 0;
        this.material = "";
        this.image = image_path;
        this.distance = 50;

    }

}

我正在尝试从 "assets/images/weapons/magnet.png" 切换到 "assets/images/weapons/magnet_black.png",但是 console.log 语句 returns "assets/images/weapons/magnet.png"(又名错误路径)。即使是默认的磁铁图像也绘制在屏幕上,而不是黑色磁铁。我该如何解决这个问题?

试试这个:

const regex = /magnet/gi
let newWord = magnet.replace(regex, 'magnet_black')
console.log(newWord)

let magnet = 'assets/images/weapons/magnet.png'
const regex = /magnet/gi

magnet.replace(regex, 'magnet_black')
console.log(magnet)

magnet = magnet.replace(regex, 'magnet_black')
console.log(magnet)

哦,哈哈,我想我已经弄明白了。您尚未将替换后的字符串分配给 image_path.src