Mes articles précédents expliquent comment commencer à programmer pour dandy en assembleur. Nous avons appris à dessiner des sprites et un arrière-plan, nous avons également brièvement discuté de ce que sont une table attributaire et une table de noms, nous avons également compris comment lire un contrôleur. Dans ces articles, j'ai utilisé chr du jeu super mario bros 2 parce que je n'étais pas un artiste, mais quand même pour créer un jeu, je devais chercher des outils qui m'aideraient à créer mes graphismes pour le jeu. Sous la coupe se trouvent les étapes du développement graphique.
Il a fallu beaucoup de temps pour trouver un outil pour Linux pour créer une table de noms, après un certain temps j'ai même commencé à écrire le mien en php. L'idée était simple et était déjà presque terminée. Il est possible de convertir une image bmp ou png par pixel par pixel. De gauche à droite 128 pixels et de haut en bas 256 lignes. Ensuite, nous déterminons la couleur de chaque pixel, et il ne peut y en avoir que 4 et, en fonction de la couleur, définissons les bits appropriés, chaque pixel du fichier chr est décrit par 2 bits, selon le principe suivant:
couleur 0 = 00 = 00000000
couleur 1 = 01 = 00000001
couleur 2 = 10 = 00000010
couleur 3 = 11 = 00000011
Autrement dit, ces 2 bits ne sont que les 2 derniers bits du numéro de séquence de couleur. Dans ce cas, la couleur 0 des sprites est une couleur transparente. En arrière-plan, c'est la couleur d'arrière-plan.
chr 2 , 128 128 . 1- ( ), 2- ( , ). , , node.js img2chr
$ npm install -g img2chr
2- 1- ( png), 2- chr
img2chr test.png test.chr
chr .
FCEUX
, FCEUX Windows, wine. , nametable attribute table .
, . 128256 8 , .
. .
, , , . , .
, , , . .
. . , , .
img2png test.png t.chr
. PPU $2004
Y -
X -
LDA #100 ; A 100
STA $2004 ; Y $2004
LDA #$01 ; 1 (0- , 1- )
STA $2004 ;
LDA #%00010110 ;
STA $2004
LDA #100 ; x
STA $2004
Et mon sprite était affiché à l'écran. Cela ne pouvait que se réjouir. Après cela, j'ai sorti tous les sprites pour dessiner le héros, 10 d'entre eux sont sortis, bien sûr c'est un très grand nombre de sprites, car nous pouvons atteindre les limites du préfixe, par exemple, 64 sprites à l'écran à en même temps, mais nous en parlerons dans les articles suivants.
Articles précédents: