問題タブ [andengine]
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.
graphics - 座標系とスプライト変換
私はandengineを使用して、box2dを介して物理シミュレーションを作成しています。
ボディは、スプライトを使用してPhysicsFactoryを介して作成されます。
私の考えは、次のパターンに従って、これらのスプライトを手続き的に配置することです。
基本的に、私の世界座標の中心を表す1つの中央のスプライトと、myWorldの中心(円の内側の「X」)を中心にベーススプライトを回転させることによって作成される一連のクローンスプライトです。
andengine内でopenglの方法を使用しようとしました(変換、回転、逆変換)
しかし、私は失敗しました:結果は正しくありません(スプライトが画像よりもはるかに大きいかのように、間違った最終位置、および間違ったbox2dボディプロパティ)
私は問題の一部がとの解釈に依存していると信じてsetRotation
おりsetRotationCenter
、一般的にはandengine座標系+box2d座標系の理解に依存しています。
考え/ドキュメント/説明へのリンクはありますか?
android - Android: AndEngine - AnimatedSprite テクスチャのサイズが大きすぎますか?
この問題が以前に尋ねられた場合は申し訳ありませんが、andEngine の使用を開始しようとして、それへの参照が見つかりませんでした。7 列でタイル化されているため、3360x720 の画像を使用しようとしています。私はこの方法を試しました:
アニメ化してシーンにアタッチすると、白い画面が表示されるだけですか?この操作にはテクスチャが大きすぎますか? もしそうなら、稲妻が 1 秒間表示されるなどの単純な小さなアニメーションはどうすればよいですか? 背景画像を実際に手動で設定するのではなく、これを実際のanimateSpriteにしたいと思います..どんな助けでも感謝します、ありがとう
[新しい情報] 各電話が処理できるサイズと関係があるとほぼ確信しています。画像のサイズを 1024x720、2048x720、そして再び 4096x720 に変更して、これをテストしました。スプライト サイズを 480x720 (カメラ サイズ) と同じに保ち、最初の 2 つの列の数に関係なく問題なく動作しましたが、4096px では単に白い画面が表示されます。まあ、誰かがこれを回避する方法を見つけたら教えてください。今のところ、「アニメーション」の src イメージを手動で調整するだけです。
それ以来、テクスチャが 1024x1024 を超えると、これが各電話で異なると仮定すると、表示されないリスクがあることがわかりました。その代わりに、単純にフレームレートを遅くして、小さい画像を使用してタイルを貼り付けています。
java - android ArrayList IndexOutOfBoundsException
AndEngineでAndroidゲームを作っています。スプライトの配列リストがあり、更新のたびに、プレーヤーのスプライトがそれらのいずれかと衝突したかどうかを確認したいと思います。しかし、私のコードのこの抜粋は私に頭痛の種を与えています:
かなり基本的に見えますが、どういうわけかsprites.get(i)
これをスローします:
にもかかわらずi<sprites.size()
、私はどういうわけかの値に達していますsprites.size()
。配列リストのサイズとiの現在の値を綴る各反復にログメッセージを入れましたが、それは正しいようです。
...すぐに例外が続きます。
だから私はここで困惑しています、これはどのように起こることができますか?
java - AndEngine と Android: for ループで OnAreaTouched が一意にならない
Android用のandengineを初めて使用しています。同じメソッドを呼び出すだけで、リスト上の位置に応じて別の変数を送信できるようにする必要があるテキストの単純なリストを作成しています。リストはスクロールする必要がなく、短いです。単純なテキストを使用することにし、for ループを作成して文字列配列から作成しました。
ループは機能し、テキストを適切に作成しますが、タッチすると、対応するものではなく最後のタッチ割り当てがすべて実行されます。
onAreaTouched コードを参照する必要がありますか、またはタッチ領域が登録されるとどこかに保存されますか。
ここにあります:
android - AndengineonScreen一時停止ボタン
andengineで画面上の一時停止ボタンを作成したい
私が今していることは、スプライトを追加することです。それに触れると、engine.stop()を実行します。これに関する問題は、ゲームを再開するまで、エンジンがそれ以上のタッチイベントを処理しないことです(現在はメニューボタンを使用していますこれ)、それを達成する方法はありますか?
ありがとう!
java - Java:匿名アクションハンドラーで「this」の適切なコンテキストを取得する
私が見ているコードの一部に気づきました。作成者は次のように使用しました。
MainClass.this
彼がスコープをに戻すために「this」の適切なコンテキストを取得した方法に注意してくださいMainClass
。私はこれがこれまでに行われたのを見たことがありません-誰かが説明できますか?
android - AndEngine: 物理コネクタの登録と登録解除に関する問題
問題は次のとおりです。スプライトとボディの両方を持つフィギュアがあります。この図はドラッグ可能で、タッチ イベントの Action Down では、ドラッグ中に他のボディと衝突しないようにボディを切断する必要があります。次に、Action Up ボディをスプライトに接続する必要があります。この問題を解決するために私が定義した 2 つの方法があります。
ただし、これは機能しません。図形をドラッグすると、他の図形と衝突します。誰でもこれを解決するのを手伝ってもらえますか? よろしくお願いします。
android - タッチ イベントに関する Android AndEngine の問題
私はandEngineを学び、いくつかの例に基づいて簡単なゲームを作ろうとしています. 私の問題は、ゲームがランダムな瞬間に停止し、戻るボタンしか使用できないことです;/ logcat を使用して問題を見つけました。ログは次のとおりです。
/リリースキー
I/DEBUG (2656): pid: 4918、tid: 4926 >>> com.homework.mygame <<< I/DEBUG (2656): シグナル 11 (SIGSEGV)、コード 1 (SEGV_MAPERR)、障害 addr 3f8191d 4 I/デバッグ(2656):R0 00000000 R1 00000000 R2 3F800000 R3 000191D4 I/DEBUG(2656):R4 00140A30 R5 00149978 R6
I/DEBUG ( 2656): ip 00000000 sp 449d9b00 lr 8062eeb8 pc 806189b8 cpsr 600 00010 I/AndEngine ( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、3 つの項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、3 つの項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、4 つのアイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、4 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、5 つのアイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine. util.pool.PoolUpdateHandler$1 が使い果たされ、5 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、6 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、6 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、7 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、7 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、8 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev. andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、8 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、9 アイテムがまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、9 項目がまだリサイクルされていません。もう1つ割り当てられています。D/dalvikvm( 929): Cronos GC_EXTERNAL_ALLOC が 166K を解放、55% が解放された 2686K/5895K、外部 905K/987K、一時停止 268ms I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が枯渇しました。まだリサイクルされていないアイテムが10個あります。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、10 個のアイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input. touch.TouchEvent$TouchEventPool が使い果たされ、11 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、11 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、12 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、12 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、13 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、13 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev. andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、14 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、14 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、15 アイテムがまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、15 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、16 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、16 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、17 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、17 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、18 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、18 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、19 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、19 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、20 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、20 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、21 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、21 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、22 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、22 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、23 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、23 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、24 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、24 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、25 アイテムがまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされました, まだリサイクルされていないアイテムが 25 個あります。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、26 項目がまだリサイクルされていません。もう1つ割り当てられています。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、26 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、27 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、27 項目がまだリサイクルされていません。もう1つ割り当てられます。D/dalvikvm( 929): Cronos GC_EXTERNAL_ALLOC が 10K を解放、55% が解放 2686K/5895K、外部 905K/927K、一時停止 294ms D/dalvikvm( 929): Cronos GC_EXTERNAL_ALLOC が 5K を解放、55% が解放1016K、
00 pc 000189b8 /data/data/com.homework.mygame/lib
/libandenginephysicsbox2dextension.so (_ZN6b2Body13CreateFixtureEPK12b2FixtureDef) I/DEBUG ( 2656): #01 pc 0000bfbc /data/data/com.homework.mygame/lib /libandenginephysicsbox2dextension.so (Java_com_badlogic_gdx_physics_box2d_Body_ jniCreate/FixtureG__J)
( 2656): #02 pc 00011d74 /system/lib/libdvm.so I/DEBUG ( 2656): I/DEBUG ( 2656): pc 周辺のコード: I/DEBUG ( 2656): 80618998 eb00595d e3500000 0a000001 e1a00004 I/DEBUG ( 2656): 806189a8 ebfffd9f e594205c e3a03a19 e2833f75 I/DEBUG ( 2656): 806189b8 e7921003 e1a00005 e3811001 e7821003 I/DEBUG ( 2656): 806189c8 e8bd81f0 e594105c e1a00005 e284200c I/DEBUG ( 2656): 806189d8 e2811a19 e2811f76 eb0003ae eaffffe2 I/DEBUG ( 2656) :I/DEBUG(2656):LRの周りのコード:I/DEBUG(2656):8062EE98 E51D0004 E12FFF1E E1A0C000 E1A00001 I/DEBUG(2656):8062EEA8 E1A0100C EAFFFFFF E92D4400F EBFFFFE1 I/DEBFUG1I/DEBBFUG(26BED508)デバッグ ( 2656): 8062eec8 ebfffff8 03a00001 13a00000 e49df008 I/デバッグ ( 2656):8062eed8 e52de008 ebfffff3 33a00001 23a00000 私/デバッグ (2656): 私/デバッグ
( 2656): スタック: I/DEBUG ( 2656):
449d9ac0 43707d58 I/DEBUG ( 2656): 449d9ac4 43707d40 I/DEBUG ( 2656): 449d9ac8 449d9ed8 I/DEBUG ( 2656): 449d9acc 4com/homework/data1717 .mygame/lib/li bandenginephysicsbox2dextension.so I/DEBUG (2656): 449d9ad0 00149978 I/DEBUG (2656):
449d9ad4 449d9b18 I/DEBUG (2656): 449d9ad8 0000ffff I/DEBUG (2656): 449d9ad8 0000ffff I/DEBUG 6/449d9d9d9d9 ):449D9AE0 00000001 I/DEBUG(2656):449D9AE4 00000000 I/DEBUG(2656):449D9AE8 00000000 I/DEBUG(2656):449D9AEC 421CF249 I/DEBUG(2656):449D9D9D9D9D9D9D9D9D9D9D9D9D9D94C/4C/4C/4C/4C/4C/4C/4C/4C/4C/DEBUG1 data/data/com.homework.mygame/lib/li bandenginephysicsbox2dextension.so I/DEBUG (2656): 449d9af8 df002777 I/DEBUG (2656):
449d9afc e3a070ad I/DEBUG (2656):00 449d9b00 ffffffff I/DEBUG (2656): 449d9b04 00000000 I/DEBUG
( 2656): 449d9b08 80632718 I/DEBUG ( 2656): 449d9b0c 43707d84 I/DEBUG ( 2656):
449d9b10 449d9b6c I/DEBUG ( 2656): 449d9b14 8060bfc0 /data/data/comlitensiongamebandsotensionmybox.homework.homework.私/デバッグ (2656): #01 449d9b18 80632718 私/デバッグ (2656):
449D9B1C 0016A928 I/DEBUG(2656):449D9B20 00000000 I/DEBUG(2656):449D9B24 00000000 I/DEBUG(2656):449D9B28 00000000 I/DEBUG(2656):449D9B2C000000/DBUG0000/DBUG0000 (2656):449D9B34 0000FFFF I/DEBUG(2656):449D9B38 449D9B90 I/DEBUG(2656):449D9B3C 000003 I/DEBUG(2656):449D9B40 44843052 I/DEBUG(2656D7D7D78D78D7849D7849D I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、28 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、28 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされました, 29 アイテムがまだリサイクルされていません。もう1つ割り当てられます。D/dalvikvm( 602): Cronos GC_EXTERNAL_ALLOC が 257K を解放し、40% が解放された 6266K/10311K、外部 1546K/1581K、一時停止された 445ms I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされました。 29 品目はまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、30 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、30 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、31 項目がまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされました, 31 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.input.touch.TouchEvent$TouchEventPool が使い果たされ、32 アイテムがまだリサイクルされていません。もう1つ割り当てられます。I/AndEngine( 4918): org.anddev.andengine.util.pool.PoolUpdateHandler$1 が使い果たされ、32 アイテムがまだリサイクルされていません。もう1つ割り当てられます。D/dalvikvm( 929): Cronos GC_EXTERNAL_ALLOC が 11K を解放、55% が解放 2685K/5895K、外部 726K/889K、一時停止 139ms 749K、一時停止 140 ミリ秒 D/dalvikvm( 929): Cronos GC_EXTERNAL_ALLOC 解放 5K、55% 解放外部 1403K/1470K、一時停止 343ms I/BootReceiver( 602): /data/tombstones/tombstone_02 を DropBox (SYSTEM_ TOMBSTONE) にコピーしています E/InputDispatcher( 602): channel '408f3600 com.homework.mygame/com.homework.myg ame.com.homework.mygame (server)' ~ 消費者が入力チャネルを閉じましたまたはエラーが発生しました。events=0x8 E/InputDispatcher( 602): チャネル '408f3600 com.homework.mygame/com.homework.myg ame.com.homework.mygame (サーバー)' ~ チャネルは回復不能なほど壊れており、破棄されます! D/Zygote ( 565): シグナル (11) によって終了したプロセス 4918 : 161568 バイトの割り当て D/dalvikvm( 602): Cronos GC_FOR_MALLOC 解放 3K、38% 解放 6538K/10503K、外部 958K/1470K、
onAreaTouched 関数のせいだと思います。私はそれを使ってプレーヤーを操作します。2 つの矢印があり、それらに触れてプレーヤーを左から右に移動できます。私はそれを正しく行っていますか、それとも別の方法で行うべきですか? これが私のコードです:
前もって感謝します
グレッグ
java - Android - Math.atan2 の問題
そのため、andengine で作成している Android ゲームでは、プレイヤー スプライトに触れてドラッグすると、キャラクターが常に進行方向を向くように連続的に回転するように設定しました。
重要な行は次のとおりです。
最後の既知の座標と現在の座標を取り、それらの間の角度を計算し、ラジアンから度に変換します。さて、これは昨日はすべて正常に機能していましたが、今日はこのコードを何も変更していないにもかかわらず、奇妙な動作をしています。スプライトの向きが不規則に変化し、明らかなパターンはありません。まっすぐに動かすと、2 つまたは 3 つの明確に異なる角度を連続的に交互に繰り返します (通常、そのうちの 1 つが正しい角度です)。
編集:解決済み、以下を参照
android - Box2d 衝突 (android AndEigne)
AndEngine を学び、簡単なゲームを作ろうとしています。私は物理エンジン box2d を使用しており、physicsworld で 2 つのオブジェクトを作成する必要があります。これらのオブジェクトは、彼自身を通過でき、この世界の残りのオブジェクトを貫通することはできません。可能ですか?
前もって感謝します
グレッグ。