❤ 0 Chapitre 10 : Quand je vois la vie en #d36ec4 !
Celle la est nul xd
Bon jusque la vous vous êtes dit merde je peux faire des sprites et des tiles seulement en noir et blanc car quand je j'utilise des valeurs de plus de 1 dans les datalong, ça marche plus !
No panique ! Comme dit Jammy on va régler ça et ce n'est pas sorcier !
La mégadrive peut mémoriser en même temps 4 palettes de 16 teintes qui sont sélectionnable dans un nuancier de 512 couleurs ! C'est peux par apport à la Super Nes mais que voulez vous !
Pour voir les couleurs, le logiciel propose un outils dédié. Allez dans le menu Tools palette éditor.
Vous avez le nuancier, et quand vous clissez la sourie sur un teinte, elle s'affiche à droite et le code couleur à gauche. (Sega Code)
En cliquant sur un carré de la palette (en bas) et une teinte, elle se mémorise dedans, ce qui vous permet de créer votre palette de 16 couleurs.
Fait copy to clipboard et ok une fois la palette choisis, et dans votre code source, un contrôle+V permet de coller la palette.
Renommer l'étiquette de votre palette comme bon vous semple !
Bravos vous avez copier coller votre premier palette mégadrive mais malheureusement c'est seulement des données Data, donc en Rom, il faut faire passer ça dans la mémoire vidéo dédié au palette de couleur. (La CRAM)
Et quand tu Cram, c'est que tu es proche du feux... ok
Exemple random
1
2
3
4
5
|
E_Palette_1:
DATAINT $0000,$000C,$0A20,$048C,$02AC,$0C4A,$0866,$008E
DATAINT $0E8E,$0CE6,$0642,$002A,$0846,$0C2C,$0CC4,$066C
|
Un peu de Technique
Bon une teinte sur Megadrive, c'est la réunion de trois couleur. Le Rouge,Le vert le Bleu. Ce qui donne du RVB ou RGB en anglais (G pour Green = Vert)
Chaque composant est codé sur 8 niveaux même si on utilises une valeur entre 0 et 15 en hexadécimal.
Ce qui fait 8 niveaux de Bleu, 8 Niveaux de Vert, 8 niveaux de Bleu soit 8*8*8 ce qui donne ? 512 yeah donc 512 couleurs possible.
Votre pc windows par exemple fonctionne aussi en RGB mais chaque teinte possède 256 niveaux (00 à FF pour chaque teinte ce qui donne 256*256*256 = 16777216 (le true colors !) ou le 24 bits. Le 32 bits permet d'avoir un canal alpha.
Bon bref voyons comment assigner la palette à un sprite (ou tiles ah ah)
1
| Palettes Nom_Étiquette,Numéro_Palette,0,16 |
Heum c'est aussi simple que çà.
Nom étiquette ça parle de lui même.
Numéro_palette c'est entre 0 et 3 compris (oui vous pouvez avoir quatres palettes en même temps)
0 et 16 gardez ça comme ça les gens !
Ce qui fait pour mon exemple !
1
| Palettes E_Palette_1,0,0,16 |
C'est simple non ?
Maintenant nous allons assigner la palette à notre sprite.
Vous vous souvenez de la commande Popsprite ? La première valeur permet d'avoir le début du tiles pour votre sprites, et le deuxième c'est tous simplement le numéros de la palette. Cool.
Maintenant dans les Data de votre Tiles vous pouvez jouer avec les valeurs par point de 0 à F qui correspond à l'index de votre palette.
Changer la couleur du fond !
Vous pouvez changer la couleur du fond.
1
| BgColor numéros_palette, index_couleur |
Exemple
Et voila le travaille.
Changer / Choix de la palette de couleur d'un tile
Attention c'est space !
Il suffit juste à coté du numéros du tiles d'ajoute un +palette(numéros_palette)
Exemple avec DrawTilesInc :
1
| DrawTilesInc 260+Palette(1),10,10,2,2 |
La tille 260 sera placé avec la palette (1). Par défaut, c'est la palette 0 qui est utilisé.
Voila pour un monde de couleur sur la mégadrive ah ah.
Voici un code exemple :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
' Chargement des 4 tiles de 8 px
LoadTiles E_Tiles,4,260
' Chargement dans la palette de couleur dans la palette 1
Palettes E_Palette_1,1,0,16
'Boucle pour afficher 10 tiles de 16px
For Y=0 To 9
For X=0 To 9
' C'est bien un "+" pour changer la palette(0-3)
DrawTilesInc 260+Palette(1),X*2,Y*2,2,2
Next
Next
'Afficher un seul til
DrawTilesInc 260+Palette(1),0,25,2,2
' Data d'une palette
E_Palette_1:
DataInt $0000,$000C,$0A20,$048C,$02AC,$0C4A,$0866,$008E
DataInt $0E8E,$0CE6,$0642,$002A,$0846,$0C2C,$0CC4,$066C
' data de nos tiles
E_Tiles:
DataLong $99999999
DataLong $90066666
DataLong $90666050
DataLong $90068850
DataLong $90068888
DataLong $90068888
DataLong $90068858
DataLong $90068858
DataLong $99999999
DataLong $66666669
DataLong $66666609
DataLong $00006009
DataLong $80006009
DataLong $80006009
DataLong $80006009
DataLong $80006009
DataLong $90068888
DataLong $90068888
DataLong $90068808
DataLong $90068880
DataLong $90068880
DataLong $90066666
DataLong $90000000
DataLong $99999999
DataLong $80006009
DataLong $80006009
DataLong $00006009
DataLong $00006009
DataLong $00006009
DataLong $66666009
DataLong $00000009
DataLong $99999999
|
|