DPTP motor: ...
DPTP motor: ...
Írjunk játékot SEGA MEGA DRIVE konzolra - 7. Text
Blog
2019-12-24 10:17
don_peter
Írások: 16

Írjunk szöveget a képernyőre.

A mostani blog bejegyzés nem lesz túl hosszú, ígéretem betartva megmutatom, hogy írhatunk hosszabb szöveget a képernyő bármely területére. Ezen felül még szó lesz arról is, hogy tudjuk a kiírt szövegünk színét paletta váltással megváltoztatni. Így január elejére szerintem ez a kis laza iromány senkit nem fog túlzottan felzaklatni, kezdjünk is bele..

SEGA logo

Az előző bejegyzésemhez képest igen kevés kiegészítésre van szükség, gyakorlatilag az N betű helyett egy teljes betűkészletet kell feltölteni, illetve kiegészül egy színpalettával, amellyel a betű színét fogjuk megváltoztatni. Ezen felül egy kis rutin is kerül a programba, amely a betűk vagy szöveg képernyő helyzetét foglya beállítani. A betűk és a színpaletta feltöltésére egy picit módosult a kód ezen része, hiszen egy teljes betűkészletet és két színpalettát kell felvenni:

Betűk és színpaletta feltöltése

A betűket a fonts\fonts.s fájlba hoztam létre, a plusz színpalettát a fő mappában a szinpalettak.asm fájlba találjátok meg. Az új színpalettával kapcsolatban csak annyit kell tudni, hogy minden esetben, ha más színt akartok elérni, akkor az 5. szín kódját kell megváltoztatni valamely más színére, és akkor a színezet szövegek felveszik a megváltozott színt.

Színpaletta

Most, ahogyan a képen is látszik, a piros a másodlagos szín.
A hosszabb szöveg kiírásában pedig a rutinosabbak már rá is jöhettek, hogyan is kell megoldani, de álljon itt egy példa erre is: Először is, a pozíciót kell megadnunk, amely a szöveg képernyőn való helyzetét állítja be.

Poziciónálás

Nem kevés, de a betűk kezelése még kacifántosabb, erre is beillesztem a példát, lehet szörnyülködni.. ;)

Egyesével kiírt szöveg

Ennél a kevés szövegnél még azért nem is olyan durva a fentebbi kód sor, de képzeljünk el, egy játék vagy valamilyen tájékoztató leírást, amely a képernyőn szkróloz, mennyire megnövelheti az a programunk méretét, illetve milyen sokáig is tartana egy-egy szögrészt begépelni, egyesével, betűnként. Borzalmasan nézne ki a kódunk és valószínűleg az első 100-200 betűnél fel is adnánk. Ennek egyszerűsítésére vannak megoldások, én a következőt írtam rá: A következő program résznél a szöveget mint string-et fogom letárolni és utána csak rutin hivatkozással kiíratom a képernyőre a megadott pozíciókra.

Szöveg string formában

Majd ezek után jöhet a varázslat, a NEO-GEO.HU szöveg, amely fentebb 39 sorból állt, az ennél a megoldásnál összesen is csak 5 sorból állna. Sokkal szebb megoldás, és még a kódunk mérete is kisebb lesz.

Szöveg gyors kiíratása

Az, hogy ezeket a rutinokat használni is lehessen, mögé kell programozni a funkciókat, ezeket a funkciókat alant láthatod:

Funkciók

A pozíciónál talán egyértelműbb a folyamat, mert szinte egy az egyben át van másolva a korábban használt pozíció kód a PositionXY címke alá, így ha szükségünk lenne egy újabb helyzetre, csak a címkére hivatkozunk és a d0-ás regiszterben megadott pozíció adatok alapján beállítja a program a kívánt pozíciókat.
A string kiírása már kicsit tovább van gondolva, mivel kiegészül egy színpaletta váltással, de igazából maga a funkció annyira egyértelmű és logikus, hogy kicsi energia és idő ráfordításával, könnyedén megérthető és használható a későbbiekben.

Az eredmény pedig, amit kapunk a következő képen láthatjuk:

Eredmény

Mindenkinek sok sikert és kitartást kívánok a projekt megírásához.
A projekt fájlt innen tölthetitek le: DPTP_oktato_3.zip

Az eddigi megjelent BLOG bejegyzéseim a témában:
SEGA MEGA DRIVE programozás
Írjunk játékot SEGA MEGA DRIVE konzolra - 1. MEGA DRIVE
Írjunk játékot SEGA MEGA DRIVE konzolra - 2. Programok
Írjunk játékot SEGA MEGA DRIVE konzolra - 3. SEGA DebugDrive
Írjunk játékot SEGA MEGA DRIVE konzolra - 4. M68K Assembler
Írjunk játékot SEGA MEGA DRIVE konzolra - 5. Inicializálás
Írjunk játékot SEGA MEGA DRIVE konzolra - 6. VDP használata
Írjunk játékot SEGA MEGA DRIVE konzolra - 7. Text (itt vagy most)

Természetesen ezen cikk végéről sem maradhat le azon link mutatója, ahol feltehetitek kérdéseiteket a témában: Írjunk játékot SEGA MEGA DRIVE konzolra

Az erő legyen veletek.
DPTP motor: GDPR infomráció!
2018 Május 25.-től hatályba lépett adatvédelmi szabályzatról itt olvashatsz bővebben: Adatvédelmi tájékoztató
Az oldal további használatához el kell olvasnod és fogadnod az adatvédelmi és cookie-k használatával kapcsolatos tájékoztatonkat.

Elfoadom!
Nem fogadom el!