A
Arif12
Neues Mitglied
- 2
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();
}
Ich erzeuge eine Arena, konfiguriere es und setze es als Contentview.
Java:
public Arena(Context context) {
super(context);
getHolder().addCallback(this);
p = new Paint(Paint.ANTI_ALIAS_FLAG);
}
Im Konstruktor von Arena registriere ich den Callback
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();
}
In surfaceChanged erzeuge ich ein Thread welcher den Canvas regelmäßig zeichnen soll, aber es passiert nichts. Was ist das Problem?