Leben anzeigen
- Home
- Tutorials
- Android
- Spiele App für Android 2.3.6 Programmieren
- Leben anzeigen
Zunächst legen wir mal wieder globale Variablen an:
private int lives = 3;
private Bitmap livesPicture;
private String livesString;
Außerdem benötigen wir ein Bild, welches wir auf unserem Screen anzeigen lassen wollen:

Dieses Bild wollen wir nun oben links auf unserem Screen 3 mal anzeigen lassen, wenn der Spieler noch drei Leben hat, 2 mal wenn er zwei Leben hat und 1mal wenn er ein Leben hat. Wenn er mehr als 3 Leben hat, soll die Anzahl der Leben * das Bild angezeigt werden.
Damit wir das Bild verwenden können, müssen wir es im Konstruktor anlegen:
livesPicture = BitmapFactory.decodeResource(getResources(), R.drawable.lives);
Um nun das Bild in passender Weise zu malen benötigen wir folgende Methode:
private void drawLives(Canvas canvas, Paint paint){
int xHeart= (int) (15*density);
int yHeart= (int) (12*density);
if (lives == 3) {
canvas.drawBitmap(livesPicture, xHeart, yHeart, paint);
canvas.drawBitmap(livesPicture, xHeart + livesPicture.getWidth() + 3*density, yHeart, paint);
canvas.drawBitmap(livesPicture, xHeart + 2 * livesPicture.getWidth() + 6*density, 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 * getDensity(), 30 * getDensity(), paint);
canvas.drawBitmap(livesPicture, 15 * getDensity() + 2 * livesPicture.getWidth() + 6, 12 * getDensity(), paint);
}
}
In der Methode Drawlives setzen wir die richtige Anzahl an Herzen und ihre passende Position auf dem Bildschirm.
Nachdem wir die Methode erstellt haben, müssen wir sie natürlich noch aufrufen, das tun wir in der Methode onDraw():
drawLives();
Jetzt haben wir zwar die Herzen auf unserem Bildschirm, aber noch nicht eingefügt, wann die Anzahl der Herzen sich ändern soll. Um dies zu ändern fügen wir der onTouchEvent() - Methode noch lives--; an der passenden Stelle ein. Also wenn der Spieler auf einen Sprite mit einer Farbe geklickt hat, die nicht der Farbe des Randes entspricht. Dann sieht die Methode folgender maßen aus:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (System.currentTimeMillis() - lastClick > 300) {
lastClick = System.currentTimeMillis();
synchronized (getHolder()) {
for (int i = spriteList.size() - 1; i >= 0; i--) {
Sprite sprite = spriteList.get(i);
if (sprite.isTouched(event.getX(), event.getY())) {
if (currentColorNum == spriteListNum.get(i)) {
score++;
}else{
lives--;
}
rndCreateSprite();
removeSprite(i);
changeColor();
break;
}
}
}
}
return true;
}
Spiele App für Android 2.3.6 Programmieren
-
Android 2.3.6 Spiele App Programmieren
-
Lektion1.1
-
Lektion1.2
-
Lektion1.3
-
Lektion1.4
-
Lektion1.5
-
Lektion1.6
-
Lektion1.7
-
Lektion1.8
-
Lektion1.9
-
Lektion1.10
-
Lektion1.11
-
Lektion1.12
-
Lektion1.13
-
Lektion1.14
-
Lektion1.15
-
Lektion1.16
-
Lektion1.17
-
Lektion1.18
-
Lektion1.19
-
Lektion1.20
-
Lektion1.21
-
Lektion1.22
-
Lektion1.23
-
Lektion1.24
-
Lektion1.25
-
Lektion1.26
-
Lektion1.27
-
Lektion1.28
-
Lektion1.29
-
Lektion1.30
-
Lektion1.31
-
Lektion1.32
-
Lektion1.33
-
Lektion1.34
-
Lektion1.35
-
Lektion1.36
-
Lektion1.37
-
Lektion1.38
-
Lektion1.39
-