私は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 つの矢印があり、それらに触れてプレーヤーを左から右に移動できます。私はそれを正しく行っていますか、それとも別の方法で行うべきですか? これが私のコードです:
mRArrow = new Sprite(125, CAMERA_HEIGHT - 55, mRArrowTextureRegion) {
@Override
protected void onManagedUpdate(float pSecondsElapsed) {
super.onManagedUpdate(pSecondsElapsed);
}
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float pTouchAreaLocalX, float pTouchAreaLocalY) {
Body playerBody = mPhysicsWorld.getPhysicsConnectorManager()
.findBodyByShape(mPlayer);
playerBody.setTransform(new Vector2((playerBody.getPosition().x + 0.15f) ,playerBody.getPosition().y), 0);
return true;
}
};
mLArrow = new Sprite(15, CAMERA_HEIGHT - 55, mLArrowTextureRegion) {
@Override
protected void onManagedUpdate(float pSecondsElapsed) {
super.onManagedUpdate(pSecondsElapsed);
}
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float pTouchAreaLocalX, float pTouchAreaLocalY) {
Body playerBody = mPhysicsWorld.getPhysicsConnectorManager()
.findBodyByShape(mPlayer);
playerBody.setTransform(new Vector2((playerBody.getPosition().x - 0.15f) ,playerBody.getPosition().y), 0);
return true;
}
};
前もって感謝します
グレッグ