除了这部分,我的所有Javascript代码都正常工作。 问题是它即使打印了1,2,3,4或5个警报也不会改变颜色。关于我可能做错什么的任何想法?
tile_size是4。
var tile = Math.round(this.map[y][x]);
if(tile <= this.waterline) {
ctx.fillStyle = "rgb(25, 25, tile+75)";
alert("1");
}
else if(tile > this.waterline && tile <= this.waterline + 10) {
ctx.fillStyle = "rgb(tile+80, tile+80, 100)";
alert("2");
}
else if(tile > this.waterline + 10 && tile <= this.waterline + 40) {
ctx.fillStyle = "rgb(0, 255-tile, 0)";
alert("3");
}
else if(tile > this.waterline + 40 && tile <= 190) {
ctx.fillStyle = "rgb(0, 255-tile, 0)";
alert("4");
}
else if(tile > 190) {
ctx.fillStyle = "rgb(255-tile, 255-tile, 255-tile)";
alert("5");
}
alert(ctx.fillStyle + " " + tile + " " + this.waterline);
ctx.fillRect(x * this.tile_size, y * this.tile_size, this.tile_size, this.tile_size);
答案 0 :(得分:1)
除非我弄错了,否则不会解析字符串。您需要正确地转义tile
变量:
ctx.fillStyle = "rgb("+(255-tile)+", "+(255-tile)+", "+(255-tile)+")";