問題タブ [sprite-sheet]
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.
javascript - EaselJS でスプライト シートを読み込む
EaselJS は初めてなので、ソース zip ファイルにパッケージ化されている「Simple Sprite Sheet」の例のコードを使用しました。スプライト シートを読み込んで再生しようとしていますが、最初のフレームしか表示されません。
イベントを登録していないため、ティッカー関数は必要ないと思います。インスタンス 1 から再生しているだけです。フレームとキャンバスはどちらも同じサイズで、アニメーションは , で置き換えるanimate.gotoAndPlay("instance1");
と再生されanimate.play("instance1");
ますが、ループします。助言がありますか?前もって感謝します。
flash - Flashにスプライトシートを正しくロードするにはどうすればよいですか?
フラッシュの一般的なユーザーとして、フレームごとにフレームを実行して画像をムーブクリップにエクスポートできることをご存知ですが、それを行うにはあまり「最適化された」方法ではありません。C++では、今は話せない友人が、スプライトシートとそれによって動きとすべてを作りました、そしてAS2は基本的にC ++なので、それはそれに似たコードに起こります、しかし私はそれを見つけることができませんでした。
私が欲しいのは、このようなスプライトシートから同じサイズの画像をインポートすることです:http: //j.imagehost.org/0829/WoodyGX_0.jpg
それらはすべて同じサイズの画像を組み合わせてスプライトシートを形成しているので、それぞれを読んでアクション用途にラベルを付けるのが好きなこの「アルゴリズム」がありますが、私は私に教えてくれる人に尋ねているのかわかりません可能性のあるアルゴリズムまたはそのシートを読み取る方法、画像ごとの画像をムービークリップに取り込みます。
今はありがとう。
performance - 同じ画像を使用する画像コントロールの画像メモリ使用量を改善する方法はありますか?
WP7ゲームでは、Enemy
クラスを作成していますが、でラップされていEnemyControl
ます。敵コントロールは、spritesheet
その敵タイプのすべての異なるアニメーション状態のいずれかを使用します。ビットマップを静的にキャッシュする画像は4つだけです。
BitmapImage
私が抱えている問題は、両方の画像が(静的におよび)キャッシュされているにもかかわらず、画像がCacheMode="BitmapCache"
コントロールによって読み込まれると、コントロールごとに約2メガのテクスチャ/システムメモリが追加されることです。
これは、画面に表示できる敵の数を制限するため、重大な問題です。
誰かが私がこの状況を改善する方法について何か考えを持っていますか?またはそうでなければそれを解決しますか?
興味がある場合は、xamlを次に示します。
android - Android のスプライト シートのサイズ変更を適切に処理する
私が取り組んでいるゲーム用の 1 行のスプライト シートがあります。私はそれらをdrawable-xhdpi
フォルダーでのみ提供し、他の密度では OS にサイズ変更を任せています。
このアプローチでは、次の問題が発生します。
状態を含む1750
幅のスプライト シート (xhdpi
幅) があり5
ます。したがって、個々のスプライトには width があり1750 / 5 = 350
ます。では、これhdpi
は にサイズ変更される1313
ため、個々のスプライトの幅は になり1313 / 5 = 262.6
ます。ただし、これは実際262
にRect
は.source
drawBitmap
これに関する問題は、個々のスプライトを適切に抽出できないことです。それらを描画すると、連続する各スプライトが少し右にずれますが、これは望ましくありません。これを修正する方法はありますか?私は試してみましたが、手動でサイズを変更して1315
、このサイズ変更されたバージョンをdrawable-hdpi
.
注 1:個々のスプライトは、両側で多くの透明度に囲まれています (両側で同じ量)。この透明度の 1 ピクセルまたは 2 ピクセルを失う余裕はありますが、中間の透明でない部分をシフトすることはできません。
注 2:これは の間だけで発生するわけではありませんxhdpi -> hdpi
。他の密度クラスにサイズ変更する場合も、同じ問題が残ります。解決策は一般的である必要があります。サイズ変更係数(または少なくとも6/8
、4/8
および3/8
)、幅、個々のスプライトの量に関係なく。
問題をよりよく理解するために、これが (自動的にサイズ変更されるスプライト) を描画する必要があるスペースであると想像してください。
これは、最初のフレームがどのように描画されるかです (0 * 262 to 0 + 262
スプライト シートから取得した、*
私が気にかけている非透明部分を表します):
これは、2 番目のフレームの描画方法です (1 * 262 to 262 + 262
スプライト シートから取得)。
それがいつあるべきか:
連続する各フレームについても同様です(少なくとも、連続する各フレームについてはそう思います。実際のデバイスでは効果はそれほど目立ちませんが、そこにあります)。
java - opengljavaglTexCoordの問題。私はそれを正しくやっていないのですか?
わかりました。私は独学のプログラマーです。lwjglとslik-utilsを使用して、ゲームを作成するためのツールを提供するライブラリを作成しようとしています。私はスプライトシートを作成しようとしていて、glTexCoord()を使用して画像の一部のみを取得しようとしています。しかし、最善を尽くして、私はうまくいきませんでした。これが描画コードです。
animation - Cocos2d 1 つのスプライトに 2 つのアニメーション
私は自分のキャラクターをそのようにアニメーション化します:
これは私のキャラクターが走っているとうまくいきますが、ジャンプするときに2番目のアニメーションが必要です。現時点では、次のようにしています。
しかし、今は 2 番目の png を含む 2 番目の plist が必要なので、キャラクターがジャンプするとまったく新しいアニメーションが得られます。どうすればそれを実装できますか?
ios - アニメーション用の分割シートとPNGファイルの配列
私は iOS アプリで UIImageView.animationImages を使用して、UIImage オブジェクトの配列を以下にリストされているアニメーション用のメソッドに渡すことで、多くのアニメーションを実行します。現在、私のUIImageオブジェクトの配列には、個別のPNGファイルが含まれています。個別のPNGファイルの配列を渡す代わりに、スプライトシートを使用して渡すことで、同様のアニメーションを実行できることを私は知っています。スプライト シートが別の目的で使用される場合と比べて、どのような利点がありますか?
actionscript-3 - AS3 Starling Framework テクスチャ アトラス TypeError #1007
私はスターリングフレームワークを初めて使用し、現在その使用方法を学んでいます。
完全に機能し、画面に表示されるスターリング フレームワークを使用して、埋め込まれた PNG ファイルからテクスチャを作成しましたが、スプライト シート (テクスチャ アトラス) を機能させようとしています。
「エラー #1007: コンストラクター以外でインスタンス化を試みました。」
私が行ったすべての調査から、私が持っているコードは機能するはずです。
私の資産クラスからの該当するコードは次のとおりです。
cocos2d-iphone - マスク付き Cocos2d アニメーション
男性が歩いているアニメーションがあります。背景画像にはいくつかの木が含まれています。私はそれらの木のマスクを持っていて、それを男性の上に適用したいので、男性が木の後ろを歩いているように見えます.
これは私のコードです:
その結果、男は木の後ろを歩いていますが、私のマスクは背景の上に黒い影として表示されています. マスクを表示せずにアニメーションに適用するにはどうすればよいですか?
memory-management - スプライトシートを効果的に使用するには?
私がやりたいこと:
スプライトシートを使用して、ゲーム内のすべての敵をロードしたいと思います。それらは、善良な人によって破壊されたとき、または画面から消えたときに削除する必要があります。私には6〜7人の敵がいて、そのうちのいくつかはアニメーションです。何度も再利用します。それらをメモリから効果的にロードおよびアンロードしたいと思います。
私がしていること:
最初にスプライトシートをロードします。
私は悪者を扱うBadBoysと呼ばれるクラスを持っています。悪者を作成するたびに、クラスのインスタンスを作成します。クラス内でスプライトを作成し、レイヤーに追加します。
スプライトが破壊されたらレイヤーからスプライトを削除し、クラスのインスタンスを解放します。
私はこれがそれを行うための良い方法であることを知っています。私が知りたいのは、これがこれを行う最も効率的な方法であるかどうかです。画像を読み込む別の方法を考えました。
CCTextureCacheに非同期で画像をロードします。次に、キャッシュのテクスチャを使用してスプライトを作成します。生きているすべての敵を保持するNSMutableArrayに追加します。それから、もう必要なくなったら、次の方法で破壊できます。
これはより良い方法ですか?あなたの意見や提案を共有してください。ありがとう。