Mithilfe einer benutzerdefinierten SurfaceView und der thread für Android-Spiel-Programmieren (Beispiel)
Ich versuche, mit SurfaceView, aber die lockCanvas(null)
ist verwirrend, und die app friert ein, wenn ich die Aktivität verlassen. Auch, es wird nichts angezeigt, obwohl das tutorial, ich war mit der Arbeit war völlig in Ordnung, und ich verstehe nicht, was ich falsch mache. Bitte helfen Sie.
InformationsquelleAutor EpicPandaForce | 2014-07-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung ist wahrscheinlich, dass
setWillNotDraw(false);
wurde nicht genannt.Daher eine Referentielle Implementierung, die funktioniert, wäre das folgende:
Die Oberfläche selbst nicht wirklich wollen, zu beantworten, was seine Breite und Höhe ist, daher ist es einfacher, wenn wir bekommen, seine Messungen von außen-und stellen es für unsere benutzerdefinierte Ansicht von außen:
Nun sind wir in der Lage zu zeichnen Sie auf die SurfaceView von unserer eigenen Thread, und außerdem sind wir in der Lage, Sie zu trennen, alle Spiel-bezogene Logik in einem GameController. Der GameController ist verantwortlich für die Verarbeitung von Eingaben und Spiel-updates zu Ereignissen, die gemäß den folgenden:
Wird und sich der delta-Zeit (die Zeit, die vergangen seit dem letzten update) ist die folgende:
Ich hoffe, dass wird hilfreich sein, um Sie später 🙂
Ich bin ein bisschen spät zur party, aber ich habe eine Frage. Wäre es nicht besser, HandlerThread nicht umsetzen, sondern einfach Thread mit eigener Schleife?
ich bin nicht wirklich sicher. SurfaceViews sind seltsam. Ich war froh, dass mein Beispiel funktionierte und deshalb habe ich es hier gepostet, vor einer Weile.
InformationsquelleAutor EpicPandaForce