atarionline.pl Time Wizard - gra na ABBUC Software Contest 2023 - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1:
         
        CommentAuthorGeorge
      • CommentTime25 Oct 2025 10:50 (3 godzin temu)
       
      Notabene, że amarok całą display listę opisał na stałych i operacjach na nich.
      Jest to bardzo czytelne i super ułatwia zrozumienie kodu.

      Zresztą cały kod źródłowy jest tak czytelnie napisany.
      • 2:
         
        CommentAuthoramarok
      • CommentTime25 Oct 2025 14:01 (14 minut temu)
       
      Zdaję sobe sprawę, że czytanie czyjegoś kodu nie jest łatwą sprawą. Dlatego staram się pisać na tyle czytelnie na ile możliwe jeśli wiem, że udostępniam kod. Fakt, że głównie jest to Pascal, czyli język strukturalny, na pewno ułatwia.

      Wszystkich plików *.pas, *.inc oraz *.asm w projekcie jest 212, więc trudno się w tym odnaleźć, ale szczęśliwie 83 z nich jest automatycznie generowana podczas procesu kompilacji wcześniejszych fragmentów. Są to głównie stałe zawierajace adresy oraz numery banków pamięci poszczególnych assetów czy procedur. Ogólnie proces kompilacji w tym projekcie dość nietrywialny, więc pewnie wypadałoby kiedyś o tym co nieco powiedzieć.

      Wracając do Twojego pytania...

      BOARD_SCREEN_COLUMNS = 40 - ilość znaków w poziomie widocznej części planszy, stąd screen w nazwie.

      BOARD_COLUMNS = 64 - ilość znaków w poziomie planszy gry, jak słusznie zauważyłeś plansza jest nieco większa niż ekran i dlatego jest przewijana w poziomie podążając za bohaterem.

      CHAR_PIXEL_WIDTH = 4 - tyle pikseli w poziomie ma znak w trybie Antic 4.

      BOARD_SCREEN_PIXEL_WIDTH = BOARD_SCREEN_COLUMNS * CHAR_PIXEL_WIDTH = 40 * 4 = 160 - tyle pikseli w poziomie widać maksymalnie na ekranie, co ciekawe ta stała nie jest już wykorzystywana w kodach gry.

      BOARD_PIXEL_WIDTH = BOARD_COLUMNS * CHAR_PIXEL_WIDTH = 64 * 4 = 256 - tyle pikseli jest w poziomie w całej planszy biorąc pod uwagę niewidoczną część, jest to wykorzystywane m.in. do określenia maksymalnego zakresu ruchu bohatera oraz do obliczeń podczas skrolowania widoku planszy.