-1

除了这部分之外,我的所有 Javascript 代码都可以正常工作。问题是即使打印 1、2、3、4 或 5 警报,它也不会改变颜色。关于我可能做错了什么的任何想法?

  • 它始终是默认的黑色方块。
  • 假设 tile 是随机浮点数。
  • 水线等于 50。
  • 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);
    
4

1 回答 1

1

除非我弄错了,否则不会解析字符串。您需要正确转义tile变量:

ctx.fillStyle = "rgb("+(255-tile)+", "+(255-tile)+", "+(255-tile)+")";
于 2013-01-29T00:10:39.917 回答