問題タブ [tmx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Linux 用のコマンド ライン TMX 編集ツール (多言語サポート) はありますか?
TMX で多言語をサポートするアプリケーションを構築しています。Windows 用のエディターをいくつか見つけましたが、リモート サーバーで開発しているため、文字列を変換して TMX ファイルに書き込むための Linux 用のコマンド ライン ツールを探しています。そのようなツールを知っている人はいますか?
java - リトルエンディアンの4バイト整数からJava整数に非gzipでデコードされた文字列base64
私はAndroidにTMXファイルを実装しようとしていますが、誰かが助けてくれることを望んでいました。TMXガイドに基づいて、GIDを取得するには
上記の例のように圧縮属性が「gzip」に設定されている場合は、最初にbase64で文字列をデコードし、次に結果のデータをgunzipで圧縮します。最後に、データストリームの最初から最後まで、GIDごとに一度に4バイトを読み取ることができます。
base64のデコードと「gunzip」を理解したと思いますが、以下のコードの結果は27,0,0,0の繰り返しです。出力は次のようになっていると思います
(0,0)(1,0)(2,0)(3,0)(0,1)(1,1)(2,1)(3,1)(0,2)(1,2) (2,2)(3,2)
ありがとう!
c# - .tmx (Tile Map Editor) ファイルを XNA プロジェクトにインポートする方法
プロジェクトに .tmx (タイル マップ エディター) ファイルを読み込もうとしましたが、次のエラーが発生します。
"Level1.tmx" に使用するインポーターを自動検出できません。このファイル タイプを処理するインポーターはありません。プロジェクトでこのファイル タイプを処理するインポーターを指定します。
c++ - .tmx (Tiled) ファイルからの zlib データの解凍
タイル マップ データをゲームに直接ロードする .tmx ローダーを作成しようとしています。私は既に Base64 デコーダーを作成し、文字列をデコードしました。
ただし、データを解凍した後、出力がありません。問題を確認できるように、例を示します。
.tmx ファイル、または使用しようとしているコード行は次のようになります。
まず、.tmx ファイルから Base64 でエンコードされ、zlib で圧縮されたデータ文字列を取得します。
Base64 デコーダーを次のように実行します。
そして得る
これが正しいとしか思えません。ウィキペディアの例でデコーダーを試してみたところ、正しい出力が得られました。したがって、Base64 デコーダーが間違っているとは思いません。結局のところ、圧縮解除後に少なくともある種のがらくたを返すか、ストリームエラーを返す必要がある出力があります。
私は zlib ライブラリと解凍サンプルのコピー アンド ペースト バージョンを使用していますzpipe.c
(関数はint inf(FILE *source, FIle *dest)
. この例では、出力 (デコードされた tmx 文字列) をファイルにすばやくコピーしました。主にコピペ)
いくつかのメモ: 簡潔にするために、エラー チェック (サンプル コードと私のコードには十分なものがありました) を削除しました。実行中にエラー メッセージは表示されませんでした。ただし、出力ファイルは空で、その理由はわかりません。
iphone - TMXマップファイルはbase_64でどの程度正確にエンコードされていますか?
.tmxマップファイルを使用するiOS用のゲームを書いています。私はアプリケーション「Tiled」でマップを作成していて、iOSに到達する前のある時点で、Perlでマップを解析しています。
ファイルをストレートXMLとして保存するとき、perlがそれらを解析するのは簡単です。ただし、cocos2dは、ファイルがbase64でエンコードされていることを要求します。「Tiled」マップエディタは、このエンコーディングスキームでファイルを保存するのに問題はなく、iOSはそれらを問題なく読み取りますが、私のperlコードに問題があります。
何らかの理由で、perlの標準のMIME :: Base64 decode_base64()メソッドはここでマスタードをカットしていません-文字列をデコードすると、1つまたは2つのバイナリ文字が表示されます-ひし形のボックスなどに疑問符が表示されます。
また、TMXファイル形式のあいまいなドキュメントでは、base64エンコーディングの前または後に他のエンコーディングが行われていて、この問題を引き起こしている可能性があるかどうかが不明確になっています。エンコーダーのcppソースを調べたところ、Latin1への参照がたくさん見られましたが、何が起こっているのかを詳細に解読できませんでした。
MIME :: Base64を使用して独自のテストを実行し、テスト文字列をエンコードしてからデコードしようとすると、エンコードされたテキストがTMXファイルから出力されるテキストとは劇的に異なることに気付きました。たとえば、base64でエンコードされたテキストです。短い文字列のテキストは次のようになります。
ただし、TMXファイルからのbase64でエンコードされたテキストは次のようになります。
そのような文字列をデコードするために他に何を試みる可能性があるかについての提案はありますか?
android - マップの読み込み後の AndEngine エラー: 無効なインデックス (onUpdate) 致命的な例外: UpdateThread
AndEngine を使用して、テスト マップを正しくロードするマップを取得しましたが、同じテクスチャで作成したマップをロードしようとすると、マップがロードされますが、AndroidRuntime エラーが発生します
test.test.test.Game$2.onUpdate(Game.Java:254) で、Game クラスの行を示します
誰がこれを引き起こしているのか考えていますか??
これは、キャラクターがスポーンする最初のマップが読み込まれる 2 番目のマップです。次に、出口フィールドに足を踏み入れると、このマップを読み込もうとします。読み込んだ後、エミュレーターがマップを表示し、前述のエラーでクラッシュします。
cocos2d-iphone - 2 つの CCTMXLayers の間に CCSprite を重ねることはできますか?
「Tiled」アプリで作成したTMXマップを多用した見下ろし型シューティングゲームを作っています。私の TMX マップ内には、フロア タイルを含む「背景」レイヤーがあり、キャラクター (CCSprites) の下に表示されます。
TMX ファイルに「フォアグラウンド」と呼ばれる別のレイヤーがあり、これを CCSprite の「上」に表示して、さまざまなオブジェクトの下を歩いているような錯覚を与えます。
これを行うために、CCNode クラスの vertexZ プロパティを使用してみました。
...しかし、実際には vertexZ がopenGL ビュー内のノードの外観を変更することがわかりました。vertexZ の値が大きいほど、効果的に CCNode が大きく表示されたり、ユーザーの近くに表示されたりします。私はそれを望んでいません-私が望むのは、レイヤー間の視覚的な違いのない、ありえないほど薄いケーキ効果のようなレイヤーだけです.
そこで、ノードの zOrder プロパティを次のように変更してみようと思いました。
しかし、spriteNode は CCScene の直接の子ですが、背景ノードと前景ノードはどちらも CCTMXTiledMap の子であり、それ自体が CCScene の子であるため、ここで行っていることには根本的な問題があることに気付きました。
基本的に、マップの 2 つのレイヤーの間に CCSprite を挿入しようとしていますが、CCScene の観点から見ると、実際には同じレイヤーの 2 つの部分にすぎません。
前景レイヤーを保持するためだけに CCTMXTiledMap の追加インスタンスを作成できるようですが、それもやり過ぎのようです。私の他の考えは、同じ目的を果たすために CCSprites を作成することでしたが、もっと良い方法が必要なようです。
xslt - 外部 XML ドキュメントを使用して XSLT 出力をローカライズする
XML データを XSL-FO に変換する XSLT スタイルシートがあります (これは、Apache FOP を使用して PDF としてレンダリングされます)。
ここで、出力をいくつかの異なる言語にローカライズする必要があります。たとえば、XSLT によって生成されたテーブルの列ヘッダーはローカライズする必要があります。以下は、列キャプション"Date"、"Name"、および"Something"を含むテーブル ヘッダーを生成する XSLT の簡略化されたスニペットです。
すでにシステムの他の部分で国際化のためにTMXファイルを使用しているので、それは自然な方法のように思えます。2 つの言語の文字列をいくつか含む TMX ファイルの簡単な例を次に示します。
したがって、基本的には、XSLT のハードコーディングされた列ヘッダーを TMX ファイル内の文字列への参照 ( tuid属性を使用) に置き換えて、同じ XSLT が異なる言語で出力を生成できるようにしたいと考えています。
しかし、XSLT で TMX ファイルを使用する方法に関するリソースが見つからないようです。いくつかの優れたチュートリアルへの例またはポインタは大歓迎です。
iphone - Retina の実行時に TMX マップがオブジェクトの位置を正しく読み取らない?
現在ゲームに取り組んでおり、Retina に変換しています。cocos2d と Tiled を使用しています。私は彼らのサイトのガイドに従っています: retina Display in cocos2dですが、オブジェクトの位置に問題があります。
今何をしているのか:
この sd TMX マップは正常に機能していますが、Retina で実行すると、オブジェクトが正しく配置されません。
位置をログに記録すると、次のようになります。
私が間違っている可能性のあるアイデアは高く評価されます
android - cocos2d-android (github バージョン) 背景レイヤーを移動している間、「プレーヤー」スプライトを画面の中央に保つにはどうすればよいですか?
私はcocos2d-androidを学習中です。Ray Wenderlich の iOS チュートリアルの一部を Android に移植したチュートリアルに従っています。私は最初のチュートリアルを完了しました。次の Ray Wenderlich チュートリアルを学習の演習として自分で Android に変換して続行したいと考えていました。
元の iOS チュートリアルは、http://www raywenderlich com/1163/how-to-make-a-tile-based-game-with-cocos2d にあります。
アプリケーションを Android に変換しましたが、動作に問題があります。
私のコードはここにあります:
public class GameLayer extends CCLayer{
}
まず、表示サイズを取得し、TMX ファイルからタイル マップを作成します。背景レイヤーを取得し、子として追加します。次に、オブジェクト レイヤーを取得し、スポーン ポイント オブジェクトをマップから引き出します (テスト目的で、このスポーン ポイントを 100、100 でオーバーライドします)。プレイヤー スプライトをつかみ、プレイヤーの位置を 100, 100 座標に設定します。次に、プレーヤーを子として追加します。
次に、setViewPointCentered を呼び出して、プレイヤーの位置に基づいてマップを適切な位置に移動します。この部分は問題なく動作し、マップは左下隅 (0,0) が画面の左下隅 (0,0) に配置され、キャラクターは画面の中心からわずかに左と下の 100,100 に配置されます。 .
問題は、上または右に移動し始めたときに発生します。画面の中心を通過すると、プレーヤーのスプライトが画面の中心に留まり、移動を続けると背景が反対方向に移動することが期待されます。ただし、プレーヤーと背景の両方が移動するため、最終的にプレーヤーが画面の右端または上端に移動し、マップがたくさん残っているにもかかわらず、上または右に移動できなくなります。
マップの左上隅にいるプレイヤーに注目してください。
プレーヤーが画面の上部に到達し、期待どおりに中央に留まらない
マップの右下隅にいるプレイヤーに注目してください。
プレーヤーが画面の右側に到達し、期待どおりに中央に留まらない
「public boolean ccTouchesEnded(MotionEvent event)」メソッドと「public void setViewPointCentered(CGPoint pos)」メソッドは、プレーヤーとビューの位置を処理しますが、正しく機能しているとは思いません。
私の友人は iOS プログラミングを行っており、彼の iPhone でアプリを作成しましたが、期待どおりに動作しているので、cocos2d の Android ポートにバグがあるのではないかと思っています。
中央に到達してマップ上で右または上に移動し続けると、キャラクターが画面の中央に留まらない理由について何か考えがある人はいますか?
ご提供いただけるご意見をお寄せいただきありがとうございます。私はこれを理解しようとして、2日間机に頭をぶつけてきました。