ええ、私は行方不明になりました。さて、2DトップダウンRPGゲームのために、すべてのタイルに大きなイメージがあるとしましょう。彼らはすべて同じ幅とすべてです。私が知りませんが、キャンバス上で使用するために、その画像の各タイルをそれぞれの画像データにどのように保存するのですか?基本的には、私のすべてのタイルで大きなイメージを取って、タイルからイメージを作るためにそれを通して四角形を選択し、各イメージを変数として配列に格納したいと思います。だから、どうすればいいの?キャンバスのタイルセットを使用して
1
A
答えて
0
キャンバスdrawImageメソッドを使用すると、それぞれのタイルを新しいキャンバスに描画できます。
// assume your big source canvas is called tileSource
var tileWidth = 64;
var tileHeight = 64;
var tileCols = Math.round(tileSource.width/tileWidth);
var tileRows = Math.rounc(tileSource.height/tileHeight);
// array to store canvas elements
var myTiles = [];
// loop through for each tile in the source
for (var i=0; i<tileRows; i++) {
for (var j=0; j<tileColumns; j++) {
// This is using jQuery to create the canvas element
// .get(0) gets the actual canvas element from the jQuery object
var tile = $('<canvas height="' + tileHeight + '" width="' + tileWidth + '"></canvas>').get(0);
// draw the tile from the source
tile.context.drawImage(tileSource, j*tileWidth, i*tileHeight, tileWidth, tileHeight, 0, 0, tileWidth, tileHeight);
// add tile to array
myTiles.push(tile);
}
}
drawImageメソッドの最初のパラメータは、ImageオブジェクトまたはCanvasオブジェクトのいずれかになります。
ここでは、canvas drawImageメソッドを使用する際の参考にしています。 https://developer.mozilla.org/en/Canvas_tutorial/Using_images
0
いくつかのことを聞いているように聞こえるので、いくつか取り上げてみます。
- マップ、タイルのセットを定義するタイルを定義する、または への画像の領域が
- を描画するシステムを定義し 特定の順序で:あなたがしたいとしているように聞こえますちょうど私がJavaScriptと
<canvas>
を使用して、上記の3つのことを行い、何かを開発したキック用
<canvas>
にマップを描きます。 The source can be found here。 注意:このコードは非常に粗い/未加工で、作業には最新のブラウザが必要です(Chrome 6以降、Opera 11など)。例で
:{ x: 0, y: 0, w: 0, h: 0 }
:
- タイルは、単純なJavaScriptのオブジェクトとして定義されています。タイルは、
TileData
というオブジェクトにグループ化されています。これは、タイルのグループ化とそのソースイメージです。 - マップは実際には
TileData
オブジェクトのインデックスに対応する数字の大きな配列です。 - マップの描画は
MapRenderer
の責任で、各タイルの矩形をルックアップして<canvas>
に描画します。
これはあなたを始めます。
関連する問題
- 1. なぜ私のタイルセットはHTMLキャンバスにレンダリングされませんか?
- 2. Spritekitのタイルセットとして画像を使用してください
- 3. タイルセットのタイルセットからタイルにアクセスする
- 4. HTML5キャンバス、タイルセットは表示されません
- 5. Phaserのtilemap.putTileを複数のタイルセットで使用しても動作しない
- 6. キャンバスを使用してC#/ WPFの別のキャンバスをマスクする
- 7. Unity3Dタイルセット遅れ
- 8. キャンバス - カスタムフォントの使用
- 9. キャンバスを使用したJavascriptのアニメーション
- 10. キャンバスを使用したAndroidグラフのアニメーション
- 11. キャンバスURLとしてlocalhostを使用しています
- 12. キャンバスが、私はこのコードを使用して、私のキャンバスを中心としていますInternet Explorerで
- 13. キャンバスを使用してカメラに合わせてグリッドを描く
- 14. キャンバスを使用してパスの一部をアニメーション化する
- 15. テクスチャボックスを使用してキャンバスの色を変更する
- 16. キャンバスを使用してビットマップ内のテキストを回転させる
- 17. androidのデータベースデータを使用してキャンバスを描画する方法
- 18. キャンバスを使用してグラフの軸にラベルを付ける
- 19. JavaScriptを使用してHTML5キャンバスに複数の円を描く
- 20. canvas.scale関数を使用してキャンバスを拡大しますか?
- 21. jQueryアニメーションを使用してコンテンツをキャンバスに表示しない
- 22. キャンバスを使用したカラーパレットアルゴリズム - HTML 5
- 23. キャンバスを使用した画像スライドショーHTML5
- 24. キャンバスを使用したGWT 2D図面
- 25. jqueryを使用した2dキャンバス
- 26. 単純なキャンバスを使用したアニメーションビュー
- 27. スクロールバーを使用したHTMLキャンバス
- 28. HTMLとJavaScriptを使用したキャンバス
- 29. コロナSDKのタイルセットのアイソメトリックグリッドの生成
- 30. キャンバスのCSSフォントをAngular 2で使用していない