Page 1 sur 1
J'ai point de point [Résolu]
Publié : ven. 08/févr./2008 21:10
par Kwai chang caine
Bonjour à tous
C'est la premiere fois que j'utilise le graphisme 2D
Et j'ai mis un point, mais je ne le vois pas
Je le vois que quand je ne colorie pas la fenetre
Quelqu'un sait pourquoi ?
Code : Tout sélectionner
#Fenetre = 1
#Image = 2
#GadgetImage = 3
OpenWindow(#Fenetre, x, y, 500, 500, "Editeur KCC", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
SetWindowColor(#Fenetre, RGB(255,255,255))
StartDrawing(WindowOutput(#Fenetre))
;DrawingMode(1)
Plot(30, 30, RGB(255,0,0))
Debug Point(30, 30)
StopDrawing()
UpdateWindow_(WindowID(#Fenetre))
Repeat
Evenement = WaitWindowEvent ()
Until Evenement = #PB_Event_CloseWindow
Je vous remercie de votre aide
Publié : ven. 08/févr./2008 21:31
par venom
salut Kwai chang caine ,
et bien je ne sais pas pourquoi mais si tu souhaite colorier la fenetre et y afficher un point moi je ferai comme ceux-ci
Code : Tout sélectionner
;- Window Constants
Enumeration
#Fenetre
EndEnumeration
If OpenWindow(#Fenetre, 0, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Fenetre))
StartDrawing(WindowOutput(#Fenetre))
Box(0, 0, 600, 300, RGB(255,255,255));<------------ je crée une box qui fait la taille de la fenetre
Plot(30, 30, RGB(255,0,0))
Couleur = Point(30, 30)
Debug Red(Couleur)
Debug Green(Couleur)
Debug Blue(Couleur)
StopDrawing()
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
au lieu d'utilisé
SetWindowColor, j'utilise
box dans ton
StartDrawing
voila dit moi si sa te va
@++
Publié : ven. 08/févr./2008 22:05
par Lna
Pour faire le point dans une fenêtre, il suffit de placer l'affichage dans l'évènement #PB_Event_Repaint.
Code : Tout sélectionner
#Fenetre = 1
#Image = 2
#GadgetImage = 3
OpenWindow(#Fenetre, x, y, 500, 500, "Editeur KCC", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
SetWindowColor(#Fenetre, RGB(255,255,255))
Repeat
Evenement = WaitWindowEvent ()
IF Evenement=#PB_Event_Repaint
StartDrawing(WindowOutput(#Fenetre))
Plot(30, 30, RGB(255,0,0))
Debug Point(30, 30)
StopDrawing()
ENDIF
Until Evenement = #PB_Event_CloseWindow
@ peluche
Publié : ven. 08/févr./2008 22:07
par Kwai chang caine
Merci de ton aide VENOM
Et merci aussi à LNA
Tu as posté en meme temps que moi
Alors cette fois avec ces deux codes j'ai deux points
Encore merci à tous les deux et bonne soirée
Publié : ven. 08/févr./2008 22:11
par Kwai chang caine
Ce qui est rigolo dans le code de LNA, c'est que comment y sait que je vais repeindre, puisque la "repeindure" est à l'interieur de l'evenement

Publié : ven. 08/févr./2008 23:16
par Lna
En déplaçant la fenêtre en dehors de l'écran avec le pixel affiché, l'instruction 'Point()' retourne -1.
Ecrire directement sur une fenêtre pour récupérer la couleur d'un pixel n'est pas fiable.
Il vaut mieux dessiner dans une image, puis de l'afficher dans la fenêtre directement ou avec un imagegadget.
De très bons exemples ici, pour prendre le bon chemin du dessin :
http://www.purebasic.fr/french/viewtopic.php?t=6327
@ peluche
Publié : sam. 09/févr./2008 9:02
par Kwai chang caine
Merci beaucoup LNA.
C'est exactement ce que je cherchais
Mais dis moi, tu n'a pas répondu à ma question ?
Ce qui est rigolo dans le code de LNA, c'est que comment y sait que je vais repeindre, puisque la "repeindure" est à l'interieur de l'evenement
Publié : sam. 09/févr./2008 9:44
par nico
Lorsque tu dessines sur une fenêtre, c'est toujours temporaire, en effet ton dessin sera systématiquement effacé à la prochaine mise à jour de l'affichage de ta fenêtre si ton dessin fait partie de la zone de réaffichage.
Alors il faut redessiner constamment le dessin à chaque évènement #WM_PAINT qui te signifie que la fenêtre ou une partie de la fenêtre va être repeinte.
C'est pour cela que c'est plus simple de travailler sur une image et de l'afficher avec un gadget.
Publié : sam. 09/févr./2008 10:10
par Kwai chang caine
Merci beaucoup NICO de ton explication.
Je vais faire tout comme vous avez dit.
Mille merci à tous
