通过 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
我正在尝试制作一款玩家持有武器的游戏,但武器的类型可以改变。我正在尝试为每个武器设置一个“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