Dessiner un quadrillage

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Dessiner un quadrillage

Message par Guimauve »

Je viens de coder une petite procédure pour dessiner un quadrillage sur une surface de dessin de votre choix.

A+
Guimauve

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Dessiner un quadrillage -- Exemple d'utilisation
; Version 1.00
; Programmation = Ok
; Programmé par : Guimauve
; Date : 25 décembre 2004
; Codé avec PureBasic V3.92
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Procédure ajouter un quadrillage sur un image soit chargé, soit créé par le programme
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Procedure DrawMapGrid(Largeur.w, Hauteur.w, Distance.w, CouleurLigne.l, Output.l)
     
     If StartDrawing(Output)
               ; Dessin des lignes extérieures
               DrawingMode(4)
               Box(0, 0, Largeur, Hauteur, CouleurLigne)
               ; dessin des lignes horizontales
               For line = 0 To Hauteur / Distance
                    LineXY(0, posY, Largeur, posY, CouleurLigne)
                    posY + Distance ; On incrémente pour la ligne suivante
               Next
               ; dessin des lignes verticales
               For line = 0 To Largeur / Distance
                    LineXY(posX, 0, posX, Hauteur, CouleurLigne)
                    posX + Distance ; On incrémente pour la ligne suivante
               Next
          StopDrawing()
          
     EndIf
EndProcedure

If OpenWindow(0, 0, 0, 410,310, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Quadrillage")
     
     CreateImage(1, 400, 300)
     StartDrawing(ImageOutput())
          Box(0, 0, 400, 300, RGB(255, 255, 000))
     StopDrawing()
     DrawMapGrid(400, 300, 10, RGB(105, 105, 105), ImageOutput())
     
     
     If CreateGadgetList(WindowID(0))
          ImageGadget(25, 5, 5, 0, 0, UseImage(1))
     EndIf
     Repeat : EventID = WaitWindowEvent() : Until EventID = #PB_Event_CloseWindow
EndIf
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

hmmmm, intéressant

merci

pat
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

J'ai codé ça pour dessiner sur un sprite mais je l'ai pas encore tester sur les srpites juste que les images mais ça deverait fonctionner.

Le sprite en question va être utiliser pour montrer une map dans un briefing de mission.

Mais j'ai bien l'impression que les lignes sont trop minces enfin vais voir ça plus tard.

A+
Guimauve
Répondre