Page 1 sur 1

[R] Arrèter une action pour en faire une autre

Posté : dim. 27 janv. 2008 13:49
par ChMuX
bonjour,
voila je m'explique: si par exemple l'écran est constitué d'un damier rouge et que la souris clique sur chaque case et que d'un coup une case bleu apparaisse, comment faire pour que la souris arrete de cliquer sur les case rouge et qu'elle clique sur la bleu???

Re: arreter une action pour en faire une autre

Posté : dim. 27 janv. 2008 14:17
par codename44
salut

je suppose que tu as une boucle qui va cliquer sur chaque case rouge.

à chaque fois que ta boucle va cliquer sur une case rouge, tu rajoutes un If vérifiant si il n'y a pas une case bleue qui est apparue, avec PixelSearch() par exemple
si la case bleue est apparue, tu cliques dessus

si tu ne vois pas comment faire, postes ton code, je pourrais être plus précis :wink:

Re: arreter une action pour en faire une autre

Posté : dim. 27 janv. 2008 16:37
par ChMuX
Oui soit plus précis stp ^^

Code : Tout sélectionner

HotKeySet("{Esc}", "Quitter")

For $i=0 to 250 step 1 
    $coord = PixelSearch( 50, 50, 960, 575, 0x59564D, 0)
    MouseClick( "left", $coord[0], $coord[1], 1, 30)
    if @error=1 Then Exit 1
    MouseClick( "left", $coord[0]+30, $coord[1]+30, 1, 30)
    Sleep(4000)
Next

Func Quitter()
    Exit 0
EndFunc

Re: arreter une action pour en faire une autre

Posté : dim. 27 janv. 2008 18:19
par codename44
voilà ce à quoi je pensais
adapte en fonction de ce que tu veux exactement :wink:

Code : Tout sélectionner

For $i=0 to 250 step 1

    $bleue = PixelSearch( 50, 50, 960, 575, bleu, 0)
    If Not @error Then;si il a trouvé la couleur bleue :
        MouseClick( "left", $bleue[0], $bleue[1],1,10) ;il clique dessus
        ExitLoop ;il sort de la boucle (je ne sais pas si c'est ce que tu veux)
    EndIf
    
    $coord = PixelSearch( 50, 50, 960, 575, 0x59564D, 0)
    MouseClick( "left", $coord[0], $coord[1], 1, 30)
    if @error=1 Then Exit 1
    MouseClick( "left", $coord[0]+30, $coord[1]+30, 1, 30)
    Sleep(4000)
    
Next

;ici la suite du script, une fois qu'il a trouvé la couleur bleue et que la boucle for est quittée

Re: arreter une action pour en faire une autre

Posté : dim. 27 janv. 2008 19:54
par ChMuX
mici c'est cool je vais faire quelques modif car ce n'est pas aussi simple ;) je reviendrait me plaindre si sa ne marche pas x).

Re: [..] Arreter une action pour en faire une autre

Posté : lun. 28 janv. 2008 19:21
par ChMuX
mici j'ais bien avansé reste 2 problemes :s alors le 1er c'est que je reprend l'exemple imaginons la case bleue ce déblace donc la sours clique sur lendroit ou elle se trouvait avant de se déplacer et il possible de régler ce probleme ?
le 2eme et que j'aimerai que la souris recherche la couleur rouge dans un périmetre éloigné de disons plus de 3 cm du du cllique précédent voila=)

Re: [..] Arreter une action pour en faire une autre

Posté : lun. 28 janv. 2008 20:22
par ChMuX
A et j'ais oublié un truc ^^ comment faire pour kune fois avoir cliqué sur la case bleue la souris se remette a cliquer sur les case rouge?

Re: [..] Arreter une action pour en faire une autre

Posté : mar. 29 janv. 2008 12:37
par codename44
salut
A et j'ais oublié un truc ^^ comment faire pour kune fois avoir cliqué sur la case bleue la souris se remette a cliquer sur les case rouge?
Ll suffit de ne pas mettre ExitLoop, comme ça la boucle ne se quitte pas et donc il continue à faire les clics sur les cases rouges après.

pour le mouvement de la case bleue, essaye d'ajouter quelques pixels au clic,

Code : Tout sélectionner

MouseClick( "left", $bleue[0]+15, $bleue[1]+15,1,10) ;il clique dessus
essaye plusieurs valeurs, mais sinon je sais pas

pour le périmètre, tu vas devoir faire deux variables contenant la coordonnée x et l'autre la coordonnée y, que tu mettras à jour à chaque tour de la boucle,et que tu utiliseras dans le PixelSearch de la boucle d'après

Re: [..] Arreter une action pour en faire une autre

Posté : mar. 29 janv. 2008 14:25
par ChMuX
mici pour toutes ces info ;) le seul probleme est pour le truc du périmetre : je ne veux pas que la souris clique 3cm plus loin mais qu'elle clique nimporte ou mais aprés ces 3 cm tu comprend?

Re: [..] Arreter une action pour en faire une autre

Posté : mar. 29 janv. 2008 14:28
par ChMuX
a m.... non céest bon dsl^^ je reouvrerait un new topic plus tard mici bien c'est cool ;)