J'ai point de point [Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

J'ai point de point [Résolu]

Message 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 :cry:
Je le vois que quand je ne colorie pas la fenetre 8O
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
Dernière modification par Kwai chang caine le sam. 09/févr./2008 10:11, modifié 1 fois.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message 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 :wink:

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 :wink:



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Lna
Messages : 181
Inscription : mar. 21/juin/2005 11:11

Message par Lna »

Pour faire le point dans une fenêtre, il suffit de placer l'affichage dans l'évènement #PB_Event_Repaint. 8)

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
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci de ton aide VENOM

Et merci aussi à LNA
Tu as posté en meme temps que moi :wink:

Alors cette fois avec ces deux codes j'ai deux points :lol:

Encore merci à tous les deux et bonne soirée
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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 8O
Lna
Messages : 181
Inscription : mar. 21/juin/2005 11:11

Message par Lna »

En déplaçant la fenêtre en dehors de l'écran avec le pixel affiché, l'instruction 'Point()' retourne -1. 8O
Ecrire directement sur une fenêtre pour récupérer la couleur d'un pixel n'est pas fiable. 8O

Il vaut mieux dessiner dans une image, puis de l'afficher dans la fenêtre directement ou avec un imagegadget. 8)

De très bons exemples ici, pour prendre le bon chemin du dessin :

http://www.purebasic.fr/french/viewtopic.php?t=6327

@ peluche
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci beaucoup LNA.
C'est exactement ce que je cherchais 8)

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
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci beaucoup NICO de ton explication.

Je vais faire tout comme vous avez dit.

Mille merci à tous 8)
Répondre