Wyświetlanie liczby na obrazkach – wersja alternatywna

W dniu dzisiejszym Michu opublikował tutorial wyjaśniający, jak wyświetlić dowolną liczbę za pomocą obrazków. Poniżej przedstawiam alternatywną wersję tego skryptu. Jest o wiele łatwiejsza do wykonania w makerze, ale logika w niej przedstawiona jest nieco bardziej skomplikowana. Przed przeczytaniem tego poradnika koniecznie zapoznajcie się najpierw z tutorialem wskazanym wyżej, ponieważ moja wersja zmienia jedynie samo zdarzenie wyświetlające obrazki.

Mój sposób opiera się na zmianie w sposobie wyświetlania obrazka przy pomocy komendy Show Picture. Użyta zostaje tutaj opcja Replace last X chars with value of variable (cały niniejszy tutorial dedykowany jest wyłącznie tym wersjom makera, które posiadają taką opcję). Nie jest ważne, który z obrazków ustawimy w polu Picture Graphic. Każdy od 0 do 9 będzie dobry. I tak ostatni znak nazwy będzie zamieniany na wartość zmiennej i skrypt będzie działał identycznie.

Nazwa obrazka w tej chwili przyjmuje wartość num?, gdzie ? oznacza wartość zmiennej Liczba Reszta.

Tak jaj wspomniałem, nie zmieniam zdarzenia typowego odpowiadającego za Usuwanie, czy też zdarzeń na mapie wywołujących zdarzenie. Jedynie sam common event Wyświetlania.

Tak prezentuje się skrypt w całości:

Skrypt jest o wiele krótszy niż pierwotne rozwiązanie – łącznie to 12 komend, nie wliczając komentarzy. W mojej wersji potrzebujemy dwóch dodatkowych zmiennych – Liczba Pomocnicza i Liczba Reszta. Na starcie skryptu Liczbę Pomocniczą ustawiamy na równą Liczbie (jest to tak jakby kopia, na której będziemy działać). Liczbę Reszta ustawiamy na równą Liczbie Pomocniczej lub po prostu Liczbie (nie ma to znaczenia, gdyż obie przechowują tą samą wartość). W tym momencie skryptu wszystkie trzy zmienne mają tą samą wartość.

Kolejnym krokiem jest wykonanie działania Liczba Reszta = Liczba Reszta % 10, czyli przypisujemy zmiennej Liczba Reszta resztę z dzielenia tej liczby przez 10 za pomocą operacji modulo. Teraz zaczynamy naszą pętlę, która jest stworzona za pomocą Label 1. Wszystko poniżej będzie wykonywało się wielokrotnie, aż do momentu, gdy warunek Liczba Pomocnicza > 0 nie będzie spełniony. Wtedy zdarzenie się zakończy.

Co do działań w pętli, wyglądają one następująco:

  1. zwiększamy Numer Obrazka o 1 (po prostu będziemy wyświetlać kolejny obrazek)
  2. zmniejszamy X obrazka o 6 (dzięki temu liczby na siebie nie nachodzą)
  3. Liczbę Pomocniczą dzielimy przez 10
  4. Liczbę Reszta ustawiamy na równą Liczbie Pomocniczej
  5. Liczbę Reszta ustawiamy na równą reszty z dzielenia tej liczby przez 10.

Jak to działa? Weźmy na przykład liczbę 542. Na początku Liczbę Reszta ustawiamy na resztę z dzielenia 542 przez 10 – czyli 2. Wyświetlamy obrazek num2. Liczbę Pomocniczą dzielimy całkowicie-liczbowo przez 10, więc 542/10=54. Przesuwamy się z liczby jedności na liczbę dziesiątek. Znowu Liczbę Reszta ustawiamy na resztę z dzielenia 54 przez 10 czyli 4. Wyświetlamy obrazek num4. I ponownie, dzielimy 54/10=5, więc Liczba Reszta to 5. W ostatnim kroku pętli wyświetlamy obrazek num5 i dzielimy 5/10 = 0. Liczba Reszta w tej chwili będzie ustawiona na 0, ale to nie ma znaczenia, gdyż warunek Liczba Pomocnicza > 0 nie będzie spełniony i kończymy działanie skryptu.

Soul

– Download przykładowego projektu –

Dodaj komentarz

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