D 
		
				
				
			
		dankefuereurehilfe
Neues Mitglied
- 0
 
Hallo, habe eine App erstellt, aber ich kann die nicht beim Emulator finden? Habe 4 Klassen erstellt und dann noch im res Ordner einfach einen layout ordner und in der eine XML-Datei, die ich noch weiter verwendet habe. Alle Klassen + die XML-Datei habe ich eingefügt.
Finde leider den Fehler nicht.
Flappy-Bird Klasse:
	
	
	
		
Game-View Klasse
	
	
	
		
MainActivity Klasse
	
	
	
		
Tube Klasse
	
	
	
		
activity_main.xml
	
	
	
		
				
			Finde leider den Fehler nicht.
Flappy-Bird Klasse:
		Code:
	
	import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import java.util.List;
public class FlappyBird {
    // Initialisieren Sie das Flappy Bird-Spielobjekt
    private Bitmap bitmap;
    private int x, y;
    private int velocity;
    private int screenHeight, screenWidth;
    private int gravity;
    public FlappyBird() {
        // Setzen Sie die Anfangsposition und Geschwindigkeit des Flappy Bird-Spielobjekts
        x = 50;
        y = 250;
        velocity = 0;
        // Setzen Sie die Schwerkraft des Flappy Bird-Spielobjekts
        gravity = 3;
    }
    // Zeichnen Sie das Flappy Bird-Spielobjekt
    public void draw(Canvas canvas) {
        Paint paint = new Paint();
        canvas.drawBitmap(bitmap, x, y, paint);
    }
    // Aktualisieren Sie das Flappy Bird-Spiel
    public void update() {
        // Ändern Sie die Höhe des Flappy Bird-Spielobjekts basierend auf der Geschwindigkeit und der Schwerkraft
        y += velocity;
        velocity += gravity;
        // Verhindern Sie, dass das Flappy Bird-Spielobjekt den Bildschirm verlässt
        if (y < 0) {
            y = 0;
        } else if (y > screenHeight - bitmap.getHeight()) {
            y = screenHeight - bitmap.getHeight();
        }
    }
    // Verarbeiten Sie den Flappy Bird-Sprung
    public void jump() {
        // Verringern Sie die Geschwindigkeit des Flappy Bird-Spielobjekts, um es in die Höhe zu befördern
        velocity = -30;
    }
    // Setzen Sie die Bildschirmgröße für das Flappy Bird-Spiel
    public void setScreenSize(int width, int height) {
        screenWidth = width;
        screenHeight = height;
    }
}
	Game-View Klasse
		Code:
	
	package com.example.flappybird;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class GameView extends View {
    // Initialisieren Sie das Flappy Bird-Spiel und die Röhren
    private FlappyBird flappyBird;
    private List<Tube> tubes = new ArrayList<>();
    // Initialisieren Sie den Zufallszahlengenerator
    private Random random = new Random();
    public GameView(Context context) {
        super(context);
    }
    // Zeichnen Sie das Flappy Bird-Spiel
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // Zeichnen Sie das Flappy Bird-Spielobjekt
        flappyBird.draw(canvas);
        // Zeichnen Sie die Röhren
        for (Tube tube : tubes) {
            tube.draw(canvas);
        }
    }
}
	MainActivity Klasse
		Code:
	
	package com.example.flappybird;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
    // Initialisieren Sie das Spielfeld und das Flappy Bird-Spiel
    private GameView gameView;
    private FlappyBird flappyBird;
    // Initialisieren Sie den Timer
    private Timer timer = new Timer();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Initialisieren Sie das Spielfeld
        gameView = findViewById(R.id.game_view);
        // Erstellen Sie ein neues Flappy Bird-Spiel
        flappyBird = new FlappyBird();
        // Setzen Sie den Timer auf eine feste Rate von 30 FPS
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                flappyBird.update();
                gameView.invalidate();
            }
        }, 0, 33);
        // Setzen Sie den OnTouchListener für das Spielfeld, um die Flappy Bird-Sprünge zu verarbeiten
        gameView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                flappyBird.jump();
                return false;
            }
        });
    }
}
	Tube Klasse
		Code:
	
	package com.example.flappybird;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
public class Tube {
    // Initialisieren Sie die Röhre
    private Bitmap bitmap;
    private int x, y;
    private int screenWidth;
    public Tube(int screenWidth) {
        // Setzen Sie die Anfangsposition der Röhre
        x = screenWidth;
        y = 0;
        // Setzen Sie die Bildschirmgröße für die Röhre
        this.screenWidth = screenWidth;
    }
    // Zeichnen Sie die Röhre
    public void draw(Canvas canvas) {
        Paint paint = new Paint();
        canvas.drawBitmap(bitmap, x, y, paint);
    }
    // Aktualisieren Sie die Röhre
    public void update() {
        // Verschieben Sie die Röhre nach links
        x -= 10;
        // Wenn die Röhre den Bildschirm verlässt, setzen Sie sie wieder auf die rechte Seite
        if (x < -bitmap.getWidth()) {
            x = screenWidth;
        }
    }
}
	activity_main.xml
		Code:
	
	<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.example.flappybird.GameView
        android:id="@+id/game_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
	
			
				Zuletzt bearbeitet: