3

私がタイルセットを持っているようなもの - http://flashpunk.net/img/tut/swordguy.png

そして私の描画コードは - http://jsfiddle.net/WnjB6/

しかし、次のようなことを行う方法 - drawTile(x, y, tile, width, height);

タイルに tileX と tileY を設定する必要がありますが、すべてのタイルセットからタイルを設定して描画する必要がある 1 つのタイルだけを行うにはどうすればよいですか?

今は tileX = 3, tileY = 1 が必要ですが、必要です - tile = 8 と同じタイルを描画します。'http://flashpunk.net/img/tut/swordguyframes.png

どうやって何かをするのですか?

助けてくれてありがとう。私の下手な英語でごめんなさい。

4

1 に答える 1

4

タイルが 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);
};

したがって、渡すと62 行目の最初のタイルに移動します。

以下に例を示します。すべてのタイルを循環します。

http://jsfiddle.net/Jrjyq/

于 2012-06-08T18:40:07.073 に答える