[R] GUICtrlCreatePic + création d'un point en mouvement
Posté : mar. 25 sept. 2012 09:58
Bonjour,
Après de multiple recherche et de test, je ne parviens pas à résoudre un problème et j'en appel à votre aide.
Je cherche à créer un point qui se déplace sur une image (pour sa pas de problème), le soucis c'est quand le point se déplace il reste des résidus de sont passage.
J'avais résolu en partie le problème en actualisant l'image avec le point se déplacent. Mais le problème c'est que j'ai d'autres points (cela fixe) qui disparaisse et sa me dérange de les redessiner à chaque fois (vu le nombre sa prend beaucoup trop de ressource et sa deviens très lent).
Je pense que le mieux serait d'avoir l'image en arrière plan (background) et de désiner le ou les point sur une espèce de calque.
Voici un bout de code amènagé pour visualisé mon problème, il vous faut juste ajouter une image de 1024 x 768 (nommé : Plan.jpg) dans le même dossier que le fichier Au3.
Après de multiple recherche et de test, je ne parviens pas à résoudre un problème et j'en appel à votre aide.
Je cherche à créer un point qui se déplace sur une image (pour sa pas de problème), le soucis c'est quand le point se déplace il reste des résidus de sont passage.
J'avais résolu en partie le problème en actualisant l'image avec le point se déplacent. Mais le problème c'est que j'ai d'autres points (cela fixe) qui disparaisse et sa me dérange de les redessiner à chaque fois (vu le nombre sa prend beaucoup trop de ressource et sa deviens très lent).
Je pense que le mieux serait d'avoir l'image en arrière plan (background) et de désiner le ou les point sur une espèce de calque.
Voici un bout de code amènagé pour visualisé mon problème, il vous faut juste ajouter une image de 1024 x 768 (nommé : Plan.jpg) dans le même dossier que le fichier Au3.
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
Opt("GUIOnEventMode", 1)
Global $GUI, $Count = 0, $background
$GUI = GUICreate("Plan", 1024, 768)
GUISetOnEvent($GUI_EVENT_CLOSE, "WindowClose")
$background = GUICtrlCreatePic("Plan.jpg", 0, 0, 1024, 768)
GUISetState()
AdlibRegister('_RefreshDot', 500)
While 1
Sleep(100)
WEnd
Func _RefreshDot()
_GDIPlus_Startup()
Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($GUI)
Local $Brush = _GDIPlus_BrushCreateSolid(0xFFFF0000)
Local $Pen = _GDIPlus_PenCreate(0xFFFFFFFF)
Local $X = 100 + $Count
Local $Y = 100 + $Count
_GDIPlus_GraphicsFillEllipse($hGraphic, $X, $Y, 6, 6, $Brush)
_GDIPlus_GraphicsDrawEllipse($hGraphic, $X, $Y, 6, 6, $Pen)
_GDIPlus_Shutdown()
$Count += 1
EndFunc
Func WindowClose()
Exit
EndFunc