Własny CMS #5 – Wyświetlanie liczb

Do tej pory wyświetlaliśmy zwykłe obrazki korzystając z osi X oraz Y. Nasze menu to bardzo często liczby, dlatego dziś zaimplementujemy możliwość ich pokazywania na ekranie.

Przygotowanie plików

Podobnie jak w przypadku tekstów, bazując na komendzie Show Text w RM tworzymy cyfry od 0 do 9. Następnie przerzucamy je do Painta.

Z tego pliku musimy wyciąć 10 małych obrazków, by móc je wykorzystywać w programie. Powinny mieć taką samą wielkość, by łatwo było nimi manipulować. W związku z tym, że teksty budujemy na kratkach o wysokości 16 pikseli, a szerokość największej cyfry łącznie z cieniem to 6 pikseli (mówimy o cyfrze „4”), tworzymy dziesięć plików z cyframi o wymiarach 6 x 16 pikseli. Pamiętajcie, by biała podstawa każdej cyfry znajdowała się 4 piksele od dolnej krawędzi, dzięki temu łatwiej będzie dopasować liczby do tekstów.

Pliki nazywamy odpowiednio num0, num1, num2 itd. To bardzo ważne, by na końcu każdej nazwy pliku była odpowiadająca mu cyfra!

Wyświetlenie obrazków

Nie będę tutaj omawiał po kolei, jak wyświetlić obrazki. Jeśli chodzi o najnowszą wersję RPG Makera 2003, zachęcam do skorzystania z poradnika Soula (ja będę z niego korzystał i dalej opiszę działanie tej metody). Dla pozostałych Makerów przydatna może być opcja opisana przeze mnie w tym poradniku.

Najpierw należy przygotować nowe zmienne, które będą regulowały skrypt pojawiania się liczb na ekranie:

Te zmienne to:

  • 0006:Licz – Numer obr (odpowiada za numer obrazka)
  • 0007:Licz – X (odpowiada za pozycję w poziomie obrazka)
  • 0008:Licz – Y (odpowiada za pozycję w pionie obrazka)
  • 0009:Licz – Glowna (do tej zmiennej będziemy przekazywali każdą liczbę, którą chcemy pokazać)
  • 0010:Licz – Pomocnicza (zmienna potrzebna do obliczeń)
  • 0011:Licz – Reszta (zmienna potrzebna do obliczeń)

Nasze założenie jest takie, że zawsze jak będziemy chcieli pokazać jakąś liczbę, trzeba będzie wskazać jej numer pierwszego obrazka oraz pozycję X i Y.

Cały skrypt wygląda tak:

Działa w ten sposób, że przy pomocy pętli pokazuje kolejne cyfry danej liczby zaczynając od prawej strony. Czyli pokazanie liczby 123 działa w ten sposób, że najpierw wyświetlana jest cyfra 3, później 2, a na końcu 1. Cyfry liczby uzyskuje się poprzez resztę z dzielenia przez 10.

Najpierw przypisujemy liczbę, którą chcemy pokazać do zmiennej 0010 – na niej będziemy pracować, a nie chcemy, by pierwotna liczba nam się zmieniła. Mamy ją pokazać, a nie modyfikować. Następnie tę samą liczbę przypisujemy do zmiennej 0011, także służącej do obliczeń.

Teraz uzyskujemy ze zmiennej 0011 resztę z dzielenia przez 10 przy pomocy operacji Modulo. Ustawiamy etykietę o numerze 1 i pokazujemy obrazek jak poniżej.

Numer obrazka znajduje się w zmiennej 0006, a koordynaty – w zmiennych 0007 i 0008. W Picture Graphic może znajdować się dowolny z 10 obrazków, które przygotowaliśmy na początku. Ważne jest zaznaczenie opcji Replace last i wskazanie 1, a w polu Variable wybranie zmiennej 11. Dzięki temu skrypt będzie pokazywał ten obrazek, którego wartość umieszczona jest w powyższej zmiennej. A przy dzieleniu przez 10 reszta zawsze będzie wynosiła od 0 do 9.

Następnie zmienną 0010 (czyli tę, której nie zniszczyła operacja reszty z dzielenia) dzielimy przez 10 (już bez reszty), żeby wyeliminować cyfrę, którą już pokazaliśmy. Teraz zmienną 0007 odpowiadającą za poziomą pozycję obrazka na mapie zmniejszamy o 6 (tyle wynosi szerokość obrazka), żeby pojawił się obok już wyświetlonego. Następnie nową wartość zmiennej 0010 przypisujemy do zmiennej 0011 i ponownie uzyskujemy z niej resztę dzielenia przez 10.

Po tym wstawiamy warunek, gdzie sprawdzamy, czy zmienna 0010 jest większa od 0. Jeśli tak, zwiększamy numer obrazka o 1 i wracamy na początek etykiety. W przeciwnym wypadku skrypt się skończy.

Całość może wydawać się nieco zagmatwana, ale najważniejsze, że działa. Gdy trochę popracujecie z tym skryptem, wszystko stanie się dla was intuicyjne.

Wywołanie obrazka

No dobra, obrazki musimy jeszcze wywołać. Szczegółowo zajmiemy się tym na kolejnej lekcji, tutaj pokażę jedynie przykładowe wywołanie.

Ten prosty skrypcik ustawia numer obrazka na 30, pozycję X na 160, pozycję Y na 120, a następnie losuje do zmiennej 0009 liczbę od 1 do 1000. Na koniec wywołujemy nasz common event (który w Triggerze miał None, czyli działa tylko na wywołanie) i usuwamy zdarzenie, żeby nam cały czas nie losowało nowych liczb. Po odpaleniu programu wszystko będzie działać jak należy.

Tyle na dziś, w kolejnej lekcji już prawdziwe mięcho, czyli pokazywanie drużyny i jej podstawowych statystyk!

ŚCIĄGNIJ PROJEKT Z LEKCJI

Michał „Michu” Wysocki

5 myśli na temat “Własny CMS #5 – Wyświetlanie liczb

  1. Nie byłoby wygodniej skorzystać ze spritesheetów? Jeżeli potrzebujecie jakiś artykuł na ich temat, jak znajdę (dłuższą) chwilę wolnego czasu to chętnie go wam napiszę.

    1. To znaczy w tym wypadku w jaki konkretnie sposób spritesheety miałyby pomóc?

      Co do artykułu – bardzo chętnie zamieścimy, zwłaszcza że to rzadko poruszany temat.

      1. Po prostu szanuję porządek w plikach i osobiście nie lubię mnóstwa małych obrazków, które nie są jakoś pogrupowane, po prostu przy większej ilości się gubię. Trochę szybciej też by było to skleić ze sobą, ale to akurat jest relatywne. Tutaj to nie jest jeszcze problem, to kilka cyfr, ale przy masie przedmiotów może być to uciążliwe. Z drugiej strony, spritesheety są dostępne z poziomu zdarzeń tylko w nowym 2k3, więc, dla większej przenośności, lepiej zostawić tak jak jest.
        Dzięki za danie zielonego światła 😉

        1. Kurcze, faktycznie chyba idzie to zrobić na spritesheecie. Jak rozumiem, wartość obrazka w zmiennej byłaby wyświetlana dzięki Sprite to Display -> Variable?

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.