Re: Relier graphiquement deux Gadgets
Publié : mer. 13/janv./2010 16:27
Bon je crois que je vais devenir dingue avec cette fleche. 
Ca fait 5 heures que je la torture, et pas moyen d'en faire ce que je veux.
KERNADEC m'a gentillement aidé pour la faire et elle est super classe.
C'etait une fleche pour aller a droite et en bas...
Bon j'me suis dit, rien de plus facile que de faire son contraire
Et 5 heures plus tard...j'ai envie de balancer ce pc un bon coup par terre pour voir si ça rebondi
J'ai essayé de modifier les coordonnées, et pas moyen de faire une fleche gauche et en bas qui fonctionne sur le meme principe, car tout est inversé et je tourne en rond
Alors je me suis apperçu que le meme code pouvait faire les deux fleches, voir meme les 4 fleches
Chouette "j'm'ai" dit, j'ai qu'a prendre le meme code pour les deux fleches, et "deplacer" le gadget selon si c'est à droite, couper la partie gauche qui sert a rien, et si c'est a gauche couper la partie droite qui sert a rien.
Et la j'me bat avec les image, les startdrawing et toute la clique.
En plus KERNADEC, il a sorti un code de la mort qui jongle entre deux images, et j'y comprend rien.
Quand je resize une tout est noir , et quand je resize l'autre et ben rien se passe
J'en ai maaaaaaarrrreee !!!
Si "quinquin" pouvait me guider un peu, ce serait pas de refus
Voila le code qui marche, et ce que je voudrais c'est que quand on deplace la fleche a droite à gauche en haut ou en bas en depassant la zone blanche et bien l'image blanche se resize autour de la fleche
Je sais ça doit pas etre facile
Merci d'avance pour le volontaire

Ca fait 5 heures que je la torture, et pas moyen d'en faire ce que je veux.
KERNADEC m'a gentillement aidé pour la faire et elle est super classe.
C'etait une fleche pour aller a droite et en bas...
Bon j'me suis dit, rien de plus facile que de faire son contraire

Et 5 heures plus tard...j'ai envie de balancer ce pc un bon coup par terre pour voir si ça rebondi

J'ai essayé de modifier les coordonnées, et pas moyen de faire une fleche gauche et en bas qui fonctionne sur le meme principe, car tout est inversé et je tourne en rond
Alors je me suis apperçu que le meme code pouvait faire les deux fleches, voir meme les 4 fleches
Chouette "j'm'ai" dit, j'ai qu'a prendre le meme code pour les deux fleches, et "deplacer" le gadget selon si c'est à droite, couper la partie gauche qui sert a rien, et si c'est a gauche couper la partie droite qui sert a rien.
Et la j'me bat avec les image, les startdrawing et toute la clique.
En plus KERNADEC, il a sorti un code de la mort qui jongle entre deux images, et j'y comprend rien.
Quand je resize une tout est noir , et quand je resize l'autre et ben rien se passe

J'en ai maaaaaaarrrreee !!!

Si "quinquin" pouvait me guider un peu, ce serait pas de refus

Voila le code qui marche, et ce que je voudrais c'est que quand on deplace la fleche a droite à gauche en haut ou en bas en depassant la zone blanche et bien l'image blanche se resize autour de la fleche

Je sais ça doit pas etre facile

Merci d'avance pour le volontaire

Code : Tout sélectionner
Enumeration
#Fenetre
#Image_0
#Image_1
#ImageGadget
EndEnumeration
Hauteur = 200
Largeur = 200
Epaisseur = 10
Couleur = RGB(34, 54, 221)
Procedure DessineFleche(x, y, Epaisseur, Couleur)
StartDrawing(ImageOutput(#Image_1))
DrawImage(ImageID(#Image_0), 0, 0)
For i = 1 To Epaisseur
LineXY(GadgetWidth(#ImageGadget) / 2, 10 + i, x - 40, 10 + i, Couleur) ; Horizontale
LineXY(x - 40 + i, 11, x - 40 + i, y - 30, Couleur) ; Verticale
LineXY(x - 40 + i, y - 30, x - 60 + i, y - 60, Couleur) ; Bord fleche gauche
LineXY(x - 40 + i, y - 30, x - 20 + i, y - 60, Couleur) ; Bord fleche droit
Next
StopDrawing()
SetGadgetState(#ImageGadget,ImageID(#Image_1))
RedrawWindow_(WindowID(#Fenetre), 0, 0, #RDW_INVALIDATE|#RDW_UPDATENOW)
EndProcedure
CreateImage(#Image_0, Largeur * 2, Hauteur) ; Image de ce qui est fixe
CreateImage(#Image_1, Largeur * 2, Hauteur) ; image de ce qui est en cours dêtre dessiné
OpenWindow(#Fenetre, 0, 0, Largeur * 3, Hauteur * 2, "Fleche et souris", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_TitleBar)
ImageGadget(#ImageGadget, Largeur / 2 , Hauteur / 2, 0, 0, ImageID(#Image_1))
StartDrawing(ImageOutput(#Image_0))
FillArea(0, 0, RGB(255,255,255), RGB(255,255,255))
StopDrawing()
DessineFleche(Largeur / 2, Hauteur, Epaisseur, Couleur)
Repeat
Evenement = WaitWindowEvent()
Select Evenement
Case #WM_MOUSEMOVE
MouseX = WindowMouseX(#Fenetre)
MouseY = WindowMouseY(#Fenetre)
If GetAsyncKeyState_(#VK_LBUTTON)
DessineFleche(MouseX - GadgetX(#ImageGadget) + 39, MouseY - GadgetY(#ImageGadget) + 39, Epaisseur, Couleur)
EndIf
EndSelect
Until Evenement = #PB_Event_CloseWindow