Page 1 sur 1

[R] Faire une boucle un peu compliquée

Posté : lun. 06 avr. 2009 18:14
par flash
Bonjour a tous,
J'aimerais faire un script qui attende qu'un pixel prenne une couleur bien précise, puis réalise une certaine action, seulement je ne sait pas quand le pixel va prendre la couleur voulue, ni même s'il la prendra un jour. Donc ca donnerait ca:

Code : Tout sélectionner

While (PixelGetColor ( 1160, 643 ) <> 0xFF6600) ; attends que le pixel prenne la couleur voulue
    Sleep(1) ; délai d'attente avant revérification
WEnd
MouseClick("left", 1168, 606, 1, 200) ; action a effectuer très rapidement après que le pixel ait pris la couleur FF6600
Le problème c'est que le pixel pourrait ne jamais prendre la couleur voulue, et donc la boucle ne s'arreterait jamais. J'ai penser a faire un If au lieu d'une boucle mais j'ai besoin que le script soit très réactif, c'est a dire qu'au moment ou le pixel change de couleur, il faut que l'action d'après soit effectuée dans la seconde.

Voila ca a peut-etre l'air un peu compliqué mais la je sèche vraiment, si vous avez des idées a me proposer n'hésitez pas, merci.

Re: Besoin d'aide pour faire une boucle un peu compliquée

Posté : lun. 06 avr. 2009 18:40
par GaRydelaMer
Bonsoir

tu as plusieurs solutions pour sortir de la boucle

1 un timer
2 un raccourci clavier

Code : Tout sélectionner

#include <Timers.au3>
_Main(5 * 1000) ; 5 secondes

Func _Main($time)
    HotKeySet("{ESC}", "_Quit")

    Local $starttime = _Timer_Init()
    While 1
        ; attends que le pixel prenne la couleur voulue
        ; action a effectuer très rapidement après que le pixel ait pris 
        If PixelGetColor( 1160, 643 ) = 0xFF6600 Then MouseClick("left", 1168, 606, 1, 200)
        If _Timer_Diff($starttime) > $time Then _Quit()
        Sleep(1) ; délai d'attente avant revérification
    WEnd
EndFunc   ;==>_Main

Func _Quit()
    Exit
EndFunc   ;==>_Quit
 

Re: [..] Faire une boucle un peu compliquée

Posté : lun. 06 avr. 2009 20:29
par Tlem
Merci de prendre le temps de lire les règles de présentation d'un message.

Re: [..] Faire une boucle un peu compliquée

Posté : lun. 06 avr. 2009 21:36
par flash
Merci GaRydelaMer, c'est exactement ce qu'il me fallait.