2017-05-29 6 views
-1

AppleのSpriteKitを使用して16進数ベースのゲームを構築しようとしています。私は現在、SKTileMapNodeを使用して、選択されたタイルの周りを中心に、指定された半径の周囲のヘクスを取得する方法を見つけようとしています。 http://www.redblobgames.com/grids/hexagons/#range-coordinateのアルゴリズムを試しましたが、Hexタイルマップを使用しているときにSKTileMapNode座標系の不透明さに失敗しました。 'N' の範囲の半径であるSpriteKit隣接する16進タイル

for dx -N ... N max = max(-N, -dx-N) min = min(N, -dx+N) for dy max ... min // place sprite at (selectedTile.col + dx, selectedTile.row + dy)

を:

これは私がこれまでにしようとしているものです。これは意図したとおりに動作していません、私はdz座標を使用していない原因だと思うサイトで言及されている。

これはSpriteKitを使用することができますか?私はできるならこのエンジンを使い続けるのが大好きです。ご不明な点がございましたら、お知らせください。

+0

私はgameplaykitが六角形をサポートして信じているが、それ – Knight0fDragon

+0

に見てみたいことがあります私も「N」はわかりません。 –

+0

たぶん私は誤って言いましたが、私は次のようなことをしようとしています:http://www.redblobgames.com/grids/hexagons/#range-coordinate –

答えて

0

私はそれを最終的に把握することができました。私が投稿したリンクには何も問題はありませんでしたが、SpriteKitが使用する座標系は、著者が3次座標系を使用している間、リンクに記載されている「奇数-r」座標系であることを認識していませんでした。私が最終的にしたのは、著者が提供した変換アルゴリズムに従ったもので、キュービックから「奇妙な」座標に前後に変換されました。次に、提供された16進数範囲を見つけるためのアルゴリズムを使用して、私は正しい機能を実装することができました。

物事をまとめるには...常にあなたが興味を持っているのではなく記事全体を読んでください!

出典:

http://www.redblobgames.com/grids/hexagons/#conversions-offset