Programowanie gier dla Androida

Programowanie gier dla Androida 17: Draw aktora

42 filmy

238 minuty

A jednak wiele dodamy aktorów, jeśli nasz aktor nie ma żadnego rodzaju zachowań lub jest określony, jak każda operacja jest sporządzony, nie będzie widać nic na ekranie. Prawdą jest, że po uruchomieniu gry, a gracze przygotowali i poprosił scenariusz rysowania, co się dzieje, że scenariusz jest rysowane, ale ponieważ nic nie jest rysowane na ekranie widzimy nic. Jesteśmy zainteresowani, że aktor jest rysowany. I pierwszy problem, to:

Muszę pokazać obraz na ekranie i musi ładować go w pewnym momencie ... jak opłata? Pierwsze rozwiązanie, które nie muszą być najlepsze. ActorJugador zawsze jest instancją klasy show (), to znaczy, gdy założymy, że libgdx jest uruchomiona. Mogliśmy spróbować Tekstura stworzyć typ pola zasięgu ActorJugador, i stawiamy w konstruktorze, aby załadować tekstury. Na przykład, odtwarzacz = new Tekstury ( 'minijoe.png').

Dzięki temu mamy moja tekstury naładowana, i może powiedzieć 'to działa', na przykład batch.draw (odtwarzacz). Skąd rysunek? Jeżeli jest on umieszczony. Jak współrzędne worek? Z getX () metoda, brat setX () i getY (), metoda brat Sety (). Podobno jeśli uruchomię to tak pokaże mój odtwarzacz tekstury. Ale mamy problem: ktoś zapomniał określić sposób zbyć, a teraz, gdy zamknę tego mamy MiniJoe

zablokowana na karcie graficznej komputera nie mógł się wydostać ... co jest problemem, bo nie wyobrażam sobie, że z wielu tekstur i znaków. Tak samo nie jest najlepszym sposobem na pobieranie zasobów, ponieważ będziemy zostawić mobilnej pamięci wideo trochę brudny. Z drugiej strony ma to kolejną wadę. Wyobraźmy sobie, że daje mi zmienić nazwę tekstury lub wprowadzić drugą lub trzecią Minijoe. Jak mogę powiedzieć ActorJugador który musi być sporządzony

z jednej lub z drugiej tekstury? A jeśli to zrobię to samo z kolcami i chcesz pokazać kilka razy aktora, pinchos, dla każdej instancji muszę instancję teksturę. Jeśli opłata 10 szaszłyki, muszę załadować tekstury 10 razy, a to wciąż odpadów. Potem, jak klasa Aktor adresy własnych Zasoby obciążenia nie jest w porządku. Ciekawym jest to, że wzór zamiast używania tekstury masz zamiar przekazać jako parametr. Co robisz tutaj jest po prostu tym,

this.setJugador = graczem. I pozwól mi tekstury poza podań w MainGameScreen, tak, że jeśli kiedykolwiek zmienić tekstury lub rzeczy, Mam scentralizowane go w tym samym kodem, bez konieczności przechodzenia aktora przeglądu każdego gracza, zwłaszcza, że ​​można pozwolić mi kod niezainicjowanej i niepowodzeniem. Chciałbym przenieść moją fakturę, i przekazać ją jako parametr. Zmienić nazwę, ale ... Ale to nie rozwiązuje problemu, bo nadal jest to konieczne

zadzwoń wyrzucać. W tym przypadku, co zrobię to, utworzyć pole, jak zwykle, a na końcu z ukrycia rozmowa texturaJugador.dispose (). W tym przypadku przynajmniej nie są zanieczyszczenia pamięci wideo, chociaż to może nie być tak optymalne, ponieważ chociaż mamy klasę BaseScreen połączeń, interfejs zwany ekran, ekran, ale już ma metodę zwaną Dispose () i ciągle dzwoni dysponowania metody ().

Potrzebna jest bardziej efektywne rozwiązania i przechodzi użyć do utylizacji (sama metoda), na przykład wywołującego texturaJugador.dispose () choć będzie to powodować problemy, bo jak powiedziałem przed każdym razem wchodząc do ekranu nowej tekstury teraz naładowany. Stare tekstury, które są tracone przypisać zmienną moc jest tracona bez disposear. W tym przypadku, zdaję sobie sprawę, że kiedy zbudować klasę MainGameScreen,

i mam możliwość tworzenia kod tutaj, w jego konstruktora. Tak jak można instancję kod w odtwarzaczu konstruktora, ponieważ libgdx Jest już i tekstura jest ładowany w czasie ładować ekran zanika w chwili wyeliminowany ekran. To nie jest najbardziej optymalna ale teraz powiem ci więcej o Scene2D i wtedy można mówić o klasie zwanej assetManager tak, że nie mamy też nasze ekrany

pełne budowniczych nowymi teksturami, ale nie może być scentralizowana klasy radzić sobie z nimi. Ale w tej chwili z tym reprezentujemy.

Aby znaleźć nowe kursy, zapisz. Nie będzie spam, obiecał :)

o autorze

foto de jotajotavm
José Javier Villena

Biografia: Analityk-Programmer w różnych językach. Platformy Opiekun PREMIUM rozpoznawane na całym świecie jako CodigoFacilito. Artykuły Edytor Cristalab. Mój kanał YouTube jest sponsorowany przez wydawcę Anaya LaTostadora. Lubię szczegółowo wyjaśnić i podać kilka przykładów dla uniknięcia wątpliwości.