2012-03-28 22 views
0

Hier ist mein Problem:Android-Zeichnung auf Leinwand Mehrere Mehrere Aktivitäten

ich zur Zeit auf Leinwand habe in meiner Haupt-Spielaktivität, die ständig mit OnDraw gezogen wird(). Dies ist ein Brettspiel mit zwei Spielern. Wenn der Zug eines Spielers beginnt, gibt es viele Optionen, die der Spieler tun kann, und ich möchte, dass all dies in eine andere Klasse gelegt wird.

Auch diese neue Klasse muss NEUE Animationen auf dem aktuellen Zeichenbereich zeichnen. Diese Animationen stammen von Angriffen (ich habe noch nicht einmal in Animationen gesehen). Also im Grunde möchte ich eine andere Leinwand über die Hauptansicht.

Darüber hinaus muss die OnDraw-Funktion in der Hauptaktivität PAUSE und warten auf die andere Klasse mit der Leinwand oben abgeschlossen werden.

Lassen Sie mich dies zusammenfassen: Ich habe eine Hauptspielklasse mit einer Leinwand. Diese Klasse behandelt die Runden und richtet das Spiel ein. Es zeichnet auch das Spielfeld. Ich brauche eine andere Klasse, wenn ein Spieler an der Reihe ist, um Animationen und andere Dinge auf die aktuelle Leinwand zu zeichnen.

Kann mir jemand dabei helfen?

HINWEIS: Ich habe Fragments und FragmentManager untersucht, aber es scheint, dass ich nur XML-Ansichten mit diesem und nicht RenderViews verwenden kann.

Vielen Dank!

Antwort

0

Sie können mehrere Bitmaps als Puffer verwenden und sie dann einfach vor dem Rendern in den Canvas einfügen. Es gibt ein schönes Beispiel im Paket "samples", das mit dem sdk geliefert wird, das zeigt, wie Sie Bitmaps übereinander verschmelzen können. Lassen Sie mich wissen, wenn Sie dies ausprobieren möchten und noch ein paar Tipps, wie es geht :)

+0

Ich habe bereits mehrere Bitmaps auf der ersten Leinwand übereinander zeichnen. Die Funktion OnDraw() muss angehalten werden, während Animationen oder andere Zeichnungen von einer anderen Funktion gezeichnet werden müssen. Wenn die Animationen oder andere Zeichnungen beendet sind, wird die ursprüngliche OnDraw() -Funktion fortgesetzt. Ist das sinnvoll? – lespommes

+0

Könntest du nicht immer die gleiche Draw-Schleife ausführen und je nach Spielstatus auswählen, welche Bitmap du machen willst. Wenn Sie also auf der Spielfläche außer einer Explosionsanimation Änderungen vornehmen, können Sie die Explosion auf einer separaten Bitmap ausführen und sie mit dem "Hintergrund" zusammenführen, nachdem Sie den nächsten Frame der Explosion gerendert haben. Ich nehme an, dass Sie vermeiden möchten, alles für jeden Frame zu rendern und dann den Canvas in so viele Bitmaps zu teilen, wie Sie benötigen, und die Änderungen an den einzelnen Bitmaps zu rendern und dann das Zusammenführen sollte, oder fehlt mir der Punkt? – erbsman

Verwandte Themen