Programmierung Spiele für Android

Programmierung Spiele für Android 17: zeichnen Darsteller

42 Videos

238 Protokoll

Und, so sehr fügen wir Schauspieler, wenn unsere Schauspieler hat keine Art von Verhalten oder definiert ist, wie jede Operation gezogen wird, Wir werden nicht alles auf dem Bildschirm zu sehen. Es ist wahr, dass, wenn Sie das Spiel laufen und die Spieler vorbereitet haben und die Auslosung Szenario gefragt, was passiert ist, dass das Szenario gezeichnet wird, aber da nichts auf dem Bildschirm gezogen wird, wir nichts sehen. Wir sind daran interessiert, dass der Schauspieler gezogen wird. Und das erste Problem ist:

Ich habe ein Bild auf dem Bildschirm zu zeigen und sie zu einem bestimmten Zeitpunkt aufgeladen werden muss ... wie die Ladung? erste Lösung, die das beste nicht zu sein braucht. ActorJugador ist immer eine Klasseninstanz show (), das heißt, wenn wir davon ausgehen, dass Libgdx gestartet wird. Wir könnten versuchen, Textur erstellen einen Feldtyp innerhalb ActorJugador, und wir werden in den Konstruktor setzen die Textur zu laden. Zum Beispiel player = neue Texturen ( 'minijoe.png').

Damit haben wir meine Textur geladen und sagen konnte, 'es funktioniert', zum Beispiel batch.draw (Spieler). Wo haben Sie zeichnen? Wo es angebracht. Wie Sack koordiniert? Mit getX (), Bruder setX () -Methode, und getY (), Bruder Sethos () -Methode. Offenbar, wenn ich dies ausführen, ja wird es zeigen meine Textur-Player. Aber wir haben ein Problem: jemand hat die Methode Dispose vergessen zu definieren, und wenn ich jetzt diese zu schließen haben wir ein MiniJoe

in der Computergrafikkarte gesperrt nicht bekommen konnte aus ... was ein Problem ist, weil ich mit einer Menge von Texturen und Charaktere vorstellen kann. Das Gleiche ist nicht der beste Weg, Ressourcen zum Download, weil wir das mobile Videospeicher ein wenig schmutzig verlassen wird. Auf der anderen Seite hat dies einen weiteren Nachteil. Stellen Sie sich vor, dass gibt mir den Namen der Textur zu ändern oder den zweiten oder dritten Minijoe einzuführen. Wie sage ich das ActorJugador, die gezogen werden müssen

mit dem einen oder anderen Textur? Oder wenn ich das gleiche mit Spikes tun und mehrmals die Schauspieler zeigen wollen, Pinchos, für jede Instanz muss ich eine Textur instanziiert. Wenn ich 10 Spieße aufzuladen, muss ich die Textur 10 Mal zu laden, und das ist immer noch eine Verschwendung. Dann, als Schauspieler Klasse eigene Adressen Last Ressourcen ist nicht richtig. Ein interessantes Muster hier ist, dass anstelle der Textur verwenden Sie als Parameter zu übergeben gehst. Was Sie tun, hier ist einfach, dass,

this.setJugador = Spieler. Und lassen Sie mich außerhalb der Pässe in MainGameScreen Textur, so dass, wenn Sie jemals Texturen oder Dinge zu ändern, Ich habe es in den gleichen Code zentralisiert ohne Schauspieler zu gehen jeder Spieler für die Überprüfung, vor allem, weil Sie nicht initialisierte Code lassen Sie mich können und scheitern. Ich würde meine Textur zu laden, und es als Parameter übergeben würde. Ich umbenennen, aber ... Aber das Problem überhaupt nicht beheben, weil es immer noch notwendig ist

rufen entsorgen. In diesem Fall, was zu tun Ich werde ist, erstellen Sie ein Feld, wie üblich, und schließlich den Anruf texturaJugador.dispose hide (). In diesem Fall zumindest verschmutzen wir nicht den Videospeicher, wenn es nicht so optimal sein kann, da, obwohl wir eine Klasse, BaseScreen Anruf, eine Schnittstelle namens Bildschirm, Bildschirm, hat aber bereits eine Methode namens Dispose (), und wir fordern ständig () -Methode zu entsorgen.

Wir brauchen eine effizientere Lösung, und übergibt die dispose (Methode selbst) zu verwenden, zum Beispiel Aufruf texturaJugador.dispose () obwohl dies wegen Problemen führen, wie ich schon sagte, jedes Mal, wenn der Bildschirm eine neue Textur jetzt berechnet eingeben. Die alte Struktur, die verloren ist zuweisen die variable Leistung ohne disposear verloren. In diesem Fall habe ich erkennen, dass, wenn ich die MainGameScreen Klasse bauen,

und ich habe die Möglichkeit, Code hier zu schaffen, in seinem Konstruktor. Wie können Sie Code in der Builder-Spieler, weil Libgdx instanziiert Es ist bereits auf und die Textur ist an der Zeit, die ich auf dem Bildschirm verblasst zu der Zeit aufladen geladen, die den Bildschirm eliminiert. Dies ist nicht der optimalste, aber jetzt werde ich Ihnen mehr über Scene2D und dann sprechen Sie über eine Klasse namens Assetmanager, so dass wir auch nicht unsere Bildschirme haben

voller Erbauer der neuen Texturen, aber es kann eine zentrale Klasse sein, mit ihnen fertig zu werden. Aber für den Augenblick damit sind wir vertreten.

Um neue Kurse finden, abonnieren. Es wird kein Spam sein, versprochen :)

Über den Autor

foto de jotajotavm
José Javier Villena

Biografie: Analyst-Programmierer in verschiedenen Sprachen. Tutor PREMIUM-Plattformen weltweit als CodigoFacilito anerkannt. Editor Cristalab Artikel. Mein YouTube-Kanal wird von der ANAYA und LaTostadora Verlag gefördert. Ich mag im Detail und geben einige Beispiele für die Vermeidung von Missverständnissen zu erklären.