【问题标题】:HTML5 Canvas Tileset drawingHTML5 Canvas Tileset 绘图
【发布时间】:2012-06-09 02:40:07
【问题描述】:

像我这样的东西有tileset - http://flashpunk.net/img/tut/swordguy.png

我的绘图代码是-http://jsfiddle.net/WnjB6/

但是如何做类似的事情 - drawTile(x, y, tile, width, height);

现在需要在tile上设置tileX和tileY,但是如何只有一个tile需要从所有tileset中设置和绘制tile?

现在需要 tileX = 3,tileY = 1,但我需要 - tile = 8 并绘制相同的图块。 'http://flashpunk.net/img/tut/swordguyframes.png

如何做类似的事情?

感谢您的帮助,抱歉我的英语不好。

【问题讨论】:

    标签: javascript html canvas


    【解决方案1】:

    你知道一排有 6 个图块,所以你可以这样做:

    var drawTile = function(x, y, tile, width, height) {
        context.drawImage(image, (tile % 6) * width, Math.floor(tile / 6) * height, width, height, x, y, width, height);
    };
    

    所以传入6 将转到第二行的第一个图块,依此类推。

    这是一个示例,它循环遍历所有图块:

    http://jsfiddle.net/Jrjyq/

    【讨论】:

    • 非常感谢西蒙!但我还有一个问题。如何计算我的瓦片集中有多少瓦片?
    • 你只需要数数。或者,如果您知道高度/宽度以及每个图块的大小,您可以进行划分。例如,swordguy.png 是 288 像素宽,瓷砖是 48 像素宽,288/48 = 6
    • 行走 if (i > 11) i = 6;
    猜你喜欢
    • 1970-01-01
    • 2014-11-07
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多