S
silverXXI
Neues Mitglied
- 0
Hallo Leute,
ich arbeite zum Zeitvertreib seit einiger Zeit an einem kleinen Spiel für Smartphones und bin jetzt an einem Punkt wo ich leider nicht mehr weiter weis.
Bei mir ist das Problem, dass meine Spiel jedesmal anstürzt, wenn ich den Display des Smartphones mit mndestens zwei Fingern gleichzeitig berühre oder sehr schnell nach einander den Display berühre.
Mein onTouchEvent sieht so aus:
Dabei wird immer dies in der Logcat rausgegeben:
Hat vielleicht jemand eine Ahnung was ich falsch gemacht habe in meinem Programm, weil ich wirklich nicht weiter komme und keine Idee habe was ich machen könnte.
Danke im Voraus für eure Mühe.
silverXXI
ich arbeite zum Zeitvertreib seit einiger Zeit an einem kleinen Spiel für Smartphones und bin jetzt an einem Punkt wo ich leider nicht mehr weiter weis.
Bei mir ist das Problem, dass meine Spiel jedesmal anstürzt, wenn ich den Display des Smartphones mit mndestens zwei Fingern gleichzeitig berühre oder sehr schnell nach einander den Display berühre.
Mein onTouchEvent sieht so aus:
Code:
@Override
public boolean onTouchEvent(MotionEvent event) {
int maskedAction = event.getActionMasked();
int pointerIndex = event.getActionIndex();
switch (maskedAction) {
case MotionEvent.ACTION_DOWN: {
PointF b = new PointF();
b.x = event.getX(pointerIndex);
b.y = event.getY(pointerIndex);
if (System.currentTimeMillis() - lastClick > 10) {
lastClick = System.currentTimeMillis();
if (!spriteHit) {
synchronized (getHolder()) {
for (int i = bonusAnimation.size() - 1; i >= 0; i--) {
Animation bonus = bonusAnimation.get(i);
if (bonus.isTouched(b.x, b.y)) {
score++;
playTime += 15000;
theGameActivity.playPoint();
bonusAnimation.remove(bonus);
spriteHit = true;
}
}
}
}
if (!spriteHit) {
synchronized (getHolder()) {
for (int i = animationList.size() - 1; i >= 0; i--) {
Animation animation = animationList.get(i);
createBonus = rnd.nextInt(bonusChance);
if (animation.isTouched(b.x, b.y)) {
if (currentColorNum == animationListNum.get(i)) {
score = score - 10;
playTime -= 5000;
theGameActivity.vibrator();
theGameActivity.playMinusPoint();
if (currentColorNum != animationListNum
.get(i)) {
score = score + 10;
theGameActivity.playPoint();
if ((score % 5 == 0) && (score != 0)) {
playTime += 3000;
// ZeitTimer += 3000;
}
scoreEffekt = true;
}
if (createBonus == 1) {
bonusAnimation
.add(createBonusAnimation(R.drawable.bonusufo001));
}
checkColorTouched(i, b.x, b.y);
if (!(createBonus == 1)) {
rndCreateAnimation();
}
removeAnimation(i);
spriteHit = true;
break;
}
}
}
}
}
spriteHit = false;
}
return true;
}
case MotionEvent.ACTION_POINTER_DOWN: {
PointF b = new PointF();
b.x = event.getX(pointerIndex);
b.y = event.getY(pointerIndex);
if (System.currentTimeMillis() - lastClick > 10) {
lastClick = System.currentTimeMillis();
if (!spriteHit) {
synchronized (getHolder()) {
for (int i = bonusAnimation.size() - 1; i >= 0; i--) {
Animation bonus = bonusAnimation.get(i);
if (bonus.isTouched(b.x, b.y)) {
score++;
playTime += 15000;
theGameActivity.playPoint();
bonusAnimation.remove(bonus);
spriteHit = true;
}
}
}
}
if (!spriteHit) {
synchronized (getHolder()) {
for (int i = animationList.size() - 1; i >= 0; i--) {
Animation animation = animationList.get(i);
createBonus = rnd.nextInt(bonusChance);
if (animation.isTouched(b.x, b.y)) {
if (currentColorNum == animationListNum.get(i)) {
score = score - 10;
playTime -= 5000;
theGameActivity.vibrator();
theGameActivity.playMinusPoint();
}
if (currentColorNum != animationListNum.get(i)) {
score = score + 10;
theGameActivity.playPoint();
if ((score % 5 == 0) && (score != 0)) {
playTime += 3000;
// ZeitTimer += 3000;
}
scoreEffekt = true;
}
if (createBonus == 1) {
bonusAnimation
.add(createBonusAnimation(R.drawable.bonusufo001));
}
checkColorTouched(i, b.x, b.y);
if (!(createBonus == 1)) {
rndCreateAnimation();
}
removeAnimation(i);
spriteHit = true;
break;
}
}
}
}
spriteHit = false;
}
return true;
}
case MotionEvent.ACTION_MOVE: {
}
case MotionEvent.ACTION_UP: {
}
case MotionEvent.ACTION_POINTER_UP: {
}
case MotionEvent.ACTION_CANCEL: {
}
}
return true;
}
Code:
03-06 00:40:40.208: W/ActivityThread(2426): Application com.version.jaro.games.spiel is waiting for the debugger on port 8100...
03-06 00:40:40.213: I/System.out(2426): Sending WAIT chunk
03-06 00:40:40.418: I/System.out(2426): Debugger has connected
03-06 00:40:40.418: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:40.618: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:40.818: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.018: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.223: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.423: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.623: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.823: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.023: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.228: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.423: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.623: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.828: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:43.028: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:43.228: I/System.out(2426): debugger has settled (1396)
03-06 00:40:43.303: E/(2426): file /data/data/com.nvidia.NvCPLSvc/files/driverlist.txt: not found!
03-06 00:40:43.303: I/(2426): Attempting to load EGL implementation /system/lib//egl/libEGL_tegra_impl
03-06 00:40:43.308: I/(2426): Loaded EGL implementation /system/lib//egl/libEGL_tegra_impl
03-06 00:40:43.333: I/(2426): Loading GLESv2 implementation /system/lib//egl/libGLESv2_tegra_impl
03-06 00:40:46.328: I/dalvikvm-heap(2426): Grow heap (frag case) to 7.385MB for 3686416-byte allocation
03-06 00:40:46.433: I/dalvikvm-heap(2426): Grow heap (frag case) to 13.635MB for 6554896-byte allocation
03-06 00:40:46.558: I/MediaPlayer(2426): setLPAflag() in
03-06 00:40:46.558: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:40:46.558: I/MediaPlayer(2426): setLPAflag() out
03-06 00:40:46.563: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:40:46.573: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:40:46.573: D/MediaPlayer(2426): doStart() in
03-06 00:40:46.573: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:40:46.598: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:40:46.598: I/MediaPlayer(2426): Info (1,902)
03-06 00:40:46.598: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:40:46.598: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:17.363: D/MediaPlayer(2426): release() in
03-06 00:41:17.368: D/MediaPlayer(2426): release() out
03-06 00:41:24.718: I/MediaPlayer(2426): setLPAflag() in
03-06 00:41:24.718: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:41:24.718: I/MediaPlayer(2426): setLPAflag() out
03-06 00:41:24.728: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:41:24.733: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:41:24.733: D/MediaPlayer(2426): doStart() in
03-06 00:41:24.733: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:41:24.748: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:41:24.748: I/MediaPlayer(2426): Info (1,902)
03-06 00:41:24.748: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:41:24.748: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:25.738: D/MediaPlayer(2426): release() in
03-06 00:41:25.743: D/MediaPlayer(2426): release() out
03-06 00:41:25.918: I/dalvikvm-heap(2426): Grow heap (frag case) to 16.000MB for 3686416-byte allocation
03-06 00:41:26.003: I/dalvikvm-heap(2426): Grow heap (frag case) to 22.251MB for 6554896-byte allocation
03-06 00:41:26.103: I/MediaPlayer(2426): setLPAflag() in
03-06 00:41:26.103: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:41:26.103: I/MediaPlayer(2426): setLPAflag() out
03-06 00:41:26.108: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:41:26.113: I/MediaPlayer(2426): setLPAflag() in
03-06 00:41:26.113: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:41:26.113: I/MediaPlayer(2426): setLPAflag() out
03-06 00:41:26.113: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:41:26.123: I/MediaPlayer(2426): setLPAflag() in
03-06 00:41:26.123: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:41:26.123: I/MediaPlayer(2426): setLPAflag() out
03-06 00:41:26.123: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:41:26.128: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:41:26.128: D/MediaPlayer(2426): doStart() in
03-06 00:41:26.128: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:41:26.148: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:41:26.148: I/MediaPlayer(2426): Info (1,902)
03-06 00:41:26.148: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:41:26.148: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:26.153: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:41:26.153: I/MediaPlayer(2426): Info (1,902)
03-06 00:41:26.153: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:41:26.153: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:26.153: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:41:26.158: I/MediaPlayer(2426): Info (1,902)
03-06 00:41:26.158: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:41:26.158: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:26.348: W/MediaPlayer-JNI(2426): MediaPlayer finalized without being released
03-06 00:41:27.748: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(545.3951, 617.95593)
03-06 00:41:27.748: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(545.3951, 617.95593)
03-06 00:41:28.198: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:41:28.198: D/MediaPlayer(2426): doStart() in
03-06 00:41:28.198: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:41:28.243: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(164.79564, 1088.4697)
03-06 00:41:28.273: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(164.79564, 1088.4697)
03-06 00:41:28.278: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:41:28.278: D/MediaPlayer(2426): doStart() in
03-06 00:41:28.278: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:41:28.323: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(289.04633, 650.4799)
03-06 00:41:28.353: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(289.04633, 650.4799)
03-06 00:41:28.358: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(107.247955, 766.84357)
03-06 00:41:28.358: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(107.247955, 766.84357)
03-06 00:41:28.588: D/MediaPlayer(2426): Mediaplayer receives message, message type: 2
03-06 00:41:28.728: D/MediaPlayer(2426): Mediaplayer receives message, message type: 2
03-06 00:41:33.803: W/dalvikvm(2426): threadid=12: thread exiting with uncaught exception (group=0x418ada08)
03-06 00:41:33.803: E/AndroidRuntime(2426): FATAL EXCEPTION: Thread-3614
03-06 00:41:33.803: E/AndroidRuntime(2426): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
03-06 00:41:33.803: E/AndroidRuntime(2426): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
03-06 00:41:33.803: E/AndroidRuntime(2426): at java.util.ArrayList.get(ArrayList.java:304)
03-06 00:41:33.803: E/AndroidRuntime(2426): at jaro.games.spiel.GameView.onDraw(GameView.java:247)
03-06 00:41:33.803: E/AndroidRuntime(2426): at jaro.games.spiel.GameLoopThread.run(GameLoopThread.java:28)
03-06 00:41:33.833: D/MediaPlayer(2426): release() in
03-06 00:41:33.838: D/MediaPlayer(2426): release() out
03-06 00:41:35.598: D/Process(2426): killProcess, pid=2426
03-06 00:41:35.598: D/Process(2426): dalvik.system.VMStack.getThreadStackTrace(Native Method)
03-06 00:41:35.598: D/Process(2426): java.lang.Thread.getStackTrace(Thread.java:599)
03-06 00:41:35.598: D/Process(2426): android.os.Process.killProcess(Process.java:1004)
03-06 00:41:35.598: D/Process(2426): com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:123)
03-06 00:41:35.598: D/Process(2426): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
03-06 00:41:35.598: D/Process(2426): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
Danke im Voraus für eure Mühe.
silverXXI