Stap 11: Werken met lettertype en tegels
Tot op dit punt hebben we een heleboel werk met sprites gedaan. Laten we shift versnellingen en kijken naar lettertypen en tegels.
U zou kunnen worden jezelf te vragen: wat is het verschil?
- Sprites zijn 16 x 16 pixel-objecten die op elke pixel positie (X & Y) van het scherm kunnen worden geplaatst.
- Tegels zijn 8 x 8 pixel-objecten die kunnen worden geplaatst op een 8 x 8 positie van het scherm.
Met andere woorden, u kon gebruiken tegels als kleine sprites en verplaatsen ze rond het scherm, maar de animatie van de beweging zou zo bijna zo glad als werkelijke sprites als zij slechts over het scherm 8 pixels per beweging kunnen verplaatsen. Onthouden tegels mogen worden gebracht uit posities 0 = 27 over het scherm, en 0-31 scherm omlaag.
De tegels is vooral handig voor het weergeven van tekstinformatie aan de speler, scoreborden, of creëren van achtergronden van de sprite om in te wonen. In het geval van mijn Lode-demo die je screenshots van hebt gezien, zijn de tegels gebruikt voor de oprichting van de bakstenen en ladders die mijn held sprite loopt en klimt op.
Als u nog niet gedownload een kopie van GRPHEDIT. BIN en toegevoegd op uw SD-kaart van uw Micromite metgezel, zult u wilt doen. Het is een uitgebreide versie van SPREDIT. BIN waaronder de mogelijkheid om lettertype/tegel. FNT bestanden. Gebruik (M) overstappen van sprite bewerkingsmodus bewerkingsmodus tegel, dan gebruik maken van (G) een groep van 16 x 16 tegels bewerken met behulp van de cursortoetsen selecteren. Het idee is hier is u te bieden een gemakkelijke manier om 16 x 16 tegel blokken (met behulp van 4 tekens) als u wilt maken groter, afbeeldingen voor uw achtergrond in elkaar grijpende indien gewenst.
U kunt elke tegel in de. FNT bestand, maar over het algemeen het is een goed idee om te blijven met de tekens na de hoofdletters (kleine letters a-z) als ze tekst voor informatie in uw spel en nummers voor uw scorebord te verlaten.
Er zijn twee handige subroutines voor het weergeven van lettertypen en tegels op het scherm.
SUB DisplayText textx,texty,color,text$ FOR x = 1 TO LEN(text$) : char = ASC(MID$(text$,x,1)) I2C write PC,0,6,1,200,textx+x,texty,color,char PAUSE 1 :NEXT x END SUB SUB DisplayChar charx,chary,color,char I2C write PC,0,6,1,200,charx,chary,color,char END SUB
De weergavetekst subroutine kan u een tekenreeks of een regel tekst op elke X- en Y-positie.
Voorbeelden:
DisplayText 10,5,6,"Hello World" Displaytext 10,5,6,A$
De subroutine DisplayChar doet het zelfde ding met behulp van een nummer.
In het volgende voorbeeld:
DisplayText 2,1,5,"SCORE" DisplayChar 11,1,6,score
Deze routines zijn ook zeer nuttig voor het debuggen van uw programma's.
Houd rekening met het volgende:
DisplayText 2,3,6,"SPRITE X" DisplayText 2,4,6,"SPRITE Y" DisplayText 11,3,6," " DisplayText 11,4,6," " DisplayText 11,3,6,STR$(player_x) DisplayText 11,4,6,STR$(player_y)