問題タブ [atlassprites]

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.

0 投票する
2 に答える
471 参照

cocoa - Cocos2dでAtlasSpriteManagerをサブクラス化する方法は?

すべて一緒に移動および回転するいくつかの複合スプライトを作成する必要があります。AtlasSpriteManagerの位置と回転を変更できるので、サブクラス化して、次のようなショートカットを作成できるようにしました。

内部的には、このように少し見えます

ただし、アプリケーションを実行すると、次の例外でクラッシュします

また、「MakeComplexSprite」内のすべてのコードを削除して何もしないようにすると、同じ問題が発生します。

AtlasSpriteManagerはサブクラス化されたくないようです。これは本当ですか?もしそうなら、なぜ、そしてどのように私はそれを回避することができますか?

アップデート:

atlasSpriteManagerを含むNSObjectを作成することで、回避策を見つけました。それでうまくいきますが、可能であればAtlasSpriteManagerをサブクラス化したいと思います。あなたが説明するように、私はこのexacltyを実装しているようです。このようなインスタンスを作成しています

これは...今考えてみると、返されるのはcSpriteがまだAtlasSpriteManagerであることを意味します。うーん。どうすれば変更できますか?

0 投票する
2 に答える
588 参照

iphone - AtlasSpriteManagerアニメーション

AtlasSpriteManagerとAltasSpriteを使用して、1つのファイルでフレームアニメーションごとにフレームを作成しています。最初はアニメーションのない単純な画像を表示するものを書きたいと思います。たとえば、それに触れると、アニメーションが表示され、最初の位置とフレームに戻ります。このコードを使用して、アニメーションなしで最初のフレームを表示することはできません。

それを行う方法はありますか?よろしくお願いします

0 投票する
1 に答える
144 参照

iphone - AtlasSpriteManager からテクスチャを作成するにはどうすればよいですか?

私がやりたいのは、1024x1024 の画像を使用して巨大なテクスチャ (幅が 1024 を超える) を作成することです。AtlasSpriteManager を使用して画像を取得できますが、マネージャーからテクスチャを取得しようとすると、最初の画像しか取得できません。

長いテクスチャを作成するには、マネージャーですべての AtlasSprite の位置を設定する必要があります。

助言がありますか?

0 投票する
1 に答える
1996 参照

android - クロッピングまたはVBOを使用したAndroid OpenGL ES draw_texture?

こんにちは、キャンバスの代わりに OpenGL を使用するように Android アプリを作り直していました (非常に遅いため)。タイル シート (アトラス テクスチャ) を使用しているので、VBO または draw_texture を使用する方が速いのではないかと考えていました。作物を次のように設定します。

Chris Pruett の話をしばらく聞いた後、draw_texture が個々のスプライトで間違いなく最速であることがわかりましたが、アトラスをトリミングしている場合、これはまだ真実ですか?

0 投票する
1 に答える
716 参照

windows - Windows Mobile 7 で SpriteSheet (Atlas) を実装する方法は?

Windows Mobile 7 で SpriteSheet (Atlas) を実装する方法は?

0 投票する
1 に答える
784 参照

android - Android用のフレームcocos2dをロードできません

アトラスから1つのスプライトを描画しようとしています。Zwoptexを使用してアトラスとplistファイルを作成しました。2つのファイルをassestフォルダーに入れます。

コードで、新しいGameSceneクラスを作成します

そしてそれをロードしてみてください。

デバッガーで次のエラーが発生します。

04-28 12:45:31.662:WARN / System.err(1147):java.io.FileNotFoundException:level1.png 04-28 12:45:32.642:WARN / System.err(1147):java.io.FileNotFoundException :Screen_01_0029_BG_01-0.png 04-28 12:45:32.622:ERROR / CCSpriteFrameCache(1147):サポートされていないZwoptexplistファイル形式。

Screen_01_0029_BG_01-0.pngは、level1.pngアトラスのフレームの1つを参照しています...

考え?

ER

0 投票する
1 に答える
70 参照

objective-c - 0.99以前のCocos2d-iPhoneコードを現在のバージョンにアップグレードする際の混乱-AtlasSpriteManager

0.99より前の移行ガイド( http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:migrating_to_0_9 )の助けを借りて、コードを非常に迅速に処理し てきましたが、変換に行き詰まりましたAtlasSpriteManager、AtlasSpriteからCCSPriteおよびその他のオブジェクトへの変換。

何が行われているのか、Boardオブジェクトを呼び出すときに現在のシステムがどのように機能するのかについては十分に明確ではありません。(私が見つけた例にはそれが含まれていませんでした)。AtlasSpriteインスタンスをCCSpriteに変換する必要があることは知っています。

編集:ボードはCCLayerの実装です

これは私がアップグレードする必要があるコードの例です:

前もって感謝します!

0 投票する
1 に答える
1751 参照

cocos2d-iphone - Cocos2d: CCSpriteBatchNode の使用に関する 6 つの疑問

CCSpriteBatchNode の使用を最適化する方法を知りたいです。言い換えれば、私は次のことを理解しています:

  • 1) 各 CCSpriteBatchNode インスタンスは draw メソッドの呼び出しを 1 回実行するため、OpenGL 呼び出しが減少し、パフォーマンスが大幅に向上します。
  • 2) 各 CCSpriteBatchNode は、テクスチャ アトラスを 1 つだけ参照できます。

私は100%確信が持てませんが、あなたの答えは次のとおりです。

  • 3) game-art-hd.png などの 1 つのテクスチャ アトラスがあり、さまざまなクラスでいくつかの CCSpriteBatchNode を作成すると、複数の描画呼び出しが発生しますか? 言い換えると、CCSpriteBatchNode の各インスタンスが独自の描画メソッドを呼び出すと想定しているため、複数の GL 描画呼び出しが発生し、1 つの共有バッチ ノードを使用する場合よりもパフォーマンスが低下します。私は正しいですか?

    - 4) スプライトで複数のフレームからなるアニメーションを使用している場合、アニメーション フレームをスプライト バッチ ノードに追加する必要があると思います。どうすればそうできますか?

    以下は、通常スプライトをアニメーション化する方法に関するコード スニペットです。お気づきのように、スプライト フレームはスプライト バッチ ノードに追加されません。パフォーマンスを向上させるには、おそらく初期化時にこれを行う必要があります。これは正しいです?

    /li>
  • 5) 部分的に 4. を参照していますが、実行時にスプライト バッチ ノードにスプライトを追加したり削除したりすることは避けたいと思いますか?

  • 6) CCSpriteBatchNode は、visible が true に設定されているスプライト、または実際に画面領域の外に位置するスプライトのみを考慮しますか?


3に関するその他の考慮事項

3. での私の仮定に対処し、CCSpriteBatchNode インスタンスの数を減らすために、私の解決策は、この回答で @Suboptimus によって提案されたものに従います。私は、self.parent.parent.(...).parent.finallysharedbatchNode 経由で MainScene にアクセスさせるのではなく、MainScene クラスと同じバッチ ノードを共有したいクラスを初期化するという提案されたアプローチが好きです。

代わりに、self.parent.....parent を使用して MainScene を参照し、正しくキャストすることを提案する人もいます。

これは、ソフトウェア エンジニアリングの観点からも最善のアプローチですか?

MainScene クラスへの明示的な参照を使用して、スプライトが追加される場所を明確にすることを好みます。これは、チームで作業している場合やクラス階層を変更する場合に役立ちます。しかし、これの欠点は、後でスプライトをバッチ ノードに追加したい場合に参照を保存する必要があり、維持するコードが増えることです。

私がこの質問をしている理由は、私の従来の「ソフトウェア エンジニアリング」の考え方と「Cocos2d 親ノード」階層アプローチとの間にわずかな衝突を見つけた場合です。私はゲームプログラミングが初めてで、大規模なチームで働く経験豊富なゲーム開発者がどのアプローチを使用しているかを理解したいと思います:)。H

0 投票する
1 に答える
64 参照

android - アトラスに画像を合わせる最適な方法は?

Android の AndEngine フレームワークには、テクスチャをアトラスにロードする方法があります。テクスチャをロードするアトラスの方法は私にとって初めてだったので、調べてみました。フォーラムで読んだことによると、アトラスは画像データの大きな長方形の領域で、幅と高さが 2 の累乗でなければなりません (ただし、同じである必要はありません。欲しいです)。テクスチャはこの領域に読み込まれ、アプリの有効期間中にすべてのテクスチャをメモリに保持するために使用されます。一部を使用しない場合でも、そのすべてのスペースが割り当てられます。

それを念頭に置いて、任意の数のグラフィックスを同じアトラスに最適に配置するには、どのプロセスを使用できますか? アプリ内で実行時にこれを行う予定はありませんが、ゲームのすべてのグラフィックが作成されたら、アルゴリズムを使用して画像とそのサイズを実行し、アトラスを作成する大きさと場所を決定できることを望んでいました。各画像をロードする必要があります。それらのことがわかったら、ゲームの場所をハードコーディングできます。

これは AndEngine や Android 固有の質問ではありません。この方法でテクスチャをロードする他のグラフィック指向のフレームワークがあると確信しています。