-1

この部分を除いて、すべての Javascript コードが機能しています。問題は、アラート 1、2、3、4、または 5 を印刷しても色が変わらないことです。私が間違っているかもしれないことについてのアイデアはありますか?

  • これは常にデフォルトの黒い四角です。
  • タイルがランダムフロートであると仮定します。
  • 喫水線は 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 に答える