Hilfe bei onTouch Event

  • 3 Antworten
  • Letztes Antwortdatum
S

schornstein

Neues Mitglied
0
Hallo erstmal :)
Ich habe vor ein paar Wochen angefangen mich mit Android und JAVA zu beschäftigen und wollte mal mit einem kleinen Projekt anfangen.

Hier ist zuerst der Code, die frage folgt danach:

package com.example.game;



import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class GameView extends SurfaceView {

private SurfaceHolder surfaceHolder;
private long lastClick;
private Bitmap livesPicture;
private int lives = 4;
private String livesString;


public GameView(Context context) {
super(context);
livesPicture = BitmapFactory.decodeResource(getResources(), R.drawable.lives);
surfaceHolder = getHolder();
surfaceHolder.addCallback(new SurfaceHolder.Callback() {

public void surfaceDestroyed(SurfaceHolder holder) {

}

public void surfaceCreated(SurfaceHolder holder) {
Canvas theCanvas = surfaceHolder.lockCanvas(null);
onDraw(theCanvas);
surfaceHolder.unlockCanvasAndPost(theCanvas);
}

public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
// TODO Auto-generated method stub

}
});

}



private void drawLives(Canvas canvas, Paint paint) {
int xHeart = (int) (15);
int yHeart = (int) (12);
if (lives == 3) {
canvas.drawBitmap(livesPicture, xHeart, yHeart, paint);
canvas.drawBitmap(livesPicture, xHeart + livesPicture.getWidth()
+ 3 , yHeart, paint);
canvas.drawBitmap(livesPicture,
xHeart + 2 * livesPicture.getWidth() + 6, yHeart,
paint);
}
if (lives == 2) {
canvas.drawBitmap(livesPicture, xHeart, yHeart, paint);
canvas.drawBitmap(livesPicture, xHeart + livesPicture.getWidth()
+ 3, yHeart, paint);
}
if (lives == 1) {
canvas.drawBitmap(livesPicture, xHeart, yHeart, paint);
}
if (lives > 3) {
livesString = String.valueOf(lives);
final String lives = livesString + "x";
canvas.drawText(lives, 35, 30 , paint);
canvas.drawBitmap(livesPicture, 15 + 2
* livesPicture.getWidth() + 6, 12, paint);
}
}
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
canvas.drawColor(Color.DKGRAY);
drawLives(canvas, paint);
}


@Override
public boolean onTouchEvent(MotionEvent event) {

synchronized (getHolder()) {
lives--;
}

return true;
}

}


Und zwar möchte ich erreichen, wenn ich den Touchscreen berühre, dass meine "lives" um 1 Punkt weniger werden. Aber ich kriege das mit den OnTouch irgentwie nicht hin^^
Über eure Hilfe und Tipps würde ich mich sehr freuen.:biggrin:
PS: Bin neu hier im Forum ;D
 
Hey,
Code:
@Override
  public boolean onTouchEvent(MotionEvent event) {
    
   int action = event.getAction();

   switch(action){
   case MotionEvent.ACTION_DOWN:{ //ACTION_DOWN ist wenn jemand den Touchscreen berührt //ACTION_UP wird aufgerufen wenn jemand sein Finger vom Touchscreen wegnimmt
    lives--;
    break;
    }
  }
}
 
Danke für deine Hilfe :)
Gibt es hier im Forum so eine Art "Daumen hoch" oder "gefällt mir" für die einzelnen beiträge?
 
Hi,
ich glaube erst ab 10 Beiträgen kannst du den "bedanken" button sehen. Der befindet sich dann unten rechts von jeden Beitrag

MfG
 

Ähnliche Themen

4
Antworten
10
Aufrufe
1.091
jogimuc
J
Zurück
Oben Unten