A
Arif12
Neues Mitglied
Hallo, ich verwende ein SurfaceView zum Zeichnen des Spiels, aber irgendwie wird nichts gezeichnet bzw. ich sehe nur schwarz ^^
Ich erzeuge eine Arena, konfiguriere es und setze es als Contentview.
Im Konstruktor von Arena registriere ich den Callback
In surfaceChanged erzeuge ich ein Thread welcher den Canvas regelmäßig zeichnen soll, aber es passiert nichts. Was ist das Problem?
Java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
arena = new Arena(this);
arena.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
setContentView(arena);
figures = new ArrayList<>();
spawn();
}
Java:
public Arena(Context context) {
super(context);
getHolder().addCallback(this);
p = new Paint(Paint.ANTI_ALIAS_FLAG);
}
Java:
public void surfaceChanged(@NonNull final SurfaceHolder surfaceHolder, int i, int i1, int i2) {
new Thread(new Runnable() {
public void run() {
while (true) {
Canvas canvas = surfaceHolder.lockCanvas();
draw(canvas);
surfaceHolder.unlockCanvasAndPost(canvas);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}