Pour colorier correctement les cartes je compte utiliser le petit programme ci-dessous(sous forme de tableau précalculé bien sûr !).
Je classe les couleurs des différents types de terrains sur une échelle de 0 à 100 (0 altitude minimale relative et 100 altitude maximale relative).
Les paramètres à modifier (type de terrain,(R,G,B) de départ,altitude relative de départ)
sont là:
Code : Tout sélectionner
TeinteDeReference(#EauxProfondes,0,0,64,0)
TeinteDeReference(#EauxPeuProfondes,0,64,255,32)
TeinteDeReference(#Sable,255,255,0,40)
TeinteDeReference(#Herbe,0,255,0,45)
TeinteDeReference(#Foret,0,128,0,70)
TeinteDeReference(#BasseMontagne,193,102,18,80)
TeinteDeReference(#HauteMontagne,111, 93, 78,90)
TeinteDeReference(#Neige,255,255,255,100)
Code : Tout sélectionner
;gradient de teintes multicolores quelconques
;Auteur Huitbit
;Avril 2011
;PureBasic 4.51 (Windows - x86)
;*********************************
#LargeurEcran=1024
#HauteurEcran=400
Enumeration
#EauxProfondes
#EauxPeuProfondes
#Sable
#Herbe
#Foret
#BasseMontagne
#HauteMontagne
#Neige
EndEnumeration
IndexMaxDesTeintes.l=2550
xEcran.l=0
y.l=0
Global x.l
Structure Teinte
Rouge.c
Vert.c
Bleu.c
Index.l
EndStructure
Macro TeinteDeReference(TypeDeTerrain,r,v,b,id);id valeur comprise entre 0 et 100
Teinte(TypeDeTerrain)\Rouge=r
Teinte(TypeDeTerrain)\Vert=v
Teinte(TypeDeTerrain)\Bleu=b
Teinte(TypeDeTerrain)\Index = id*IndexMaxDesTeintes/100
EndMacro
Macro Composante(comp)
ValeurComposanteTeinte(x,Teinte(TypeDeTerrain)\Index ,Teinte(TypeDeTerrain)\comp,Teinte(TypeDeTerrain+1)\Index ,Teinte(TypeDeTerrain+1)\comp)
EndMacro
Procedure.f ValeurComposanteTeinte(x.l,xA.f,Ya.f,xB.f,YB.f)
ProcedureReturn yA + (yB - yA)/(xB - xA) * (x - xA)
EndProcedure
Global Dim Teinte.Teinte(IndexMaxDesTeintes)
TeinteDeReference(#EauxProfondes,0,0,64,0)
TeinteDeReference(#EauxPeuProfondes,0,64,255,32)
TeinteDeReference(#Sable,255,255,0,40)
TeinteDeReference(#Herbe,0,255,0,45)
TeinteDeReference(#Foret,0,128,0,70)
TeinteDeReference(#BasseMontagne,193,102,18,80)
TeinteDeReference(#HauteMontagne,111, 93, 78,90)
TeinteDeReference(#Neige,255,255,255,100)
;-PROGRAMME PRINCIPAL
InitSprite()
InitKeyboard()
OpenWindow(0,0,0,#LargeurEcran,#HauteurEcran,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu )
OpenWindowedScreen(WindowID(0),0,0,#LargeurEcran,#HauteurEcran,0,0,0)
CreateSprite(0,#LargeurEcran,#HauteurEcran)
StartDrawing(SpriteOutput(0))
For x=0 To IndexMaxDesTeintes
;"Retour" à la ligne
If xEcran=#LargeurEcran
xEcran=0
y = y+100
EndIf
Select x
Case Teinte(#EauxProfondes)\Index
TypeDeTerrain=#EauxProfondes
Case Teinte(#EauxPeuProfondes)\Index
TypeDeTerrain=#EauxPeuProfondes
Case Teinte(#Sable)\Index
TypeDeTerrain=#Sable
Case Teinte(#Herbe)\Index
TypeDeTerrain=#Herbe
Case Teinte(#Foret)\Index
TypeDeTerrain=#Foret
Case Teinte(#BasseMontagne)\Index
TypeDeTerrain=#BasseMontagne
Case Teinte(#HauteMontagne)\Index
TypeDeTerrain=#HauteMontagne
EndSelect
Line(xEcran,y,1,50,RGB(Composante(Rouge),Composante(Vert),Composante(Bleu)))
xEcran=xEcran+1
Next x
StopDrawing()
;-BOUCLE PRINCIPALE
Repeat
FlipBuffers()
DisplaySprite(0,0,0)
Delay(10)
Until WindowEvent() = #PB_Event_CloseWindow
PS : Bon anniversaire Taznormand

[EDIT] Premier test avec 2550 teintes, bof

Je vais rajouter la pente pour voir...[EDIT]
