PixelSearch (problema de expresion)

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Josede
Mensajes: 11
Registrado: 13 Jul 2012, 00:30

PixelSearch (problema de expresion)

Mensaje por Josede »

Hola que tal, os explico mi idea, seguramente sera facil, pero soy un poco burro a la hora de escribirlo.

Yo quiero, que cuando encuentre 1 pixel en una zona determinada haga 1 cosa, y sin embargo, sino lo encuentra haga otra. Yo he puesto esto pero pienso que esta mal expresado porque no me funciona.



If PixelSearch(44,55, 55, 44, 0xA13C23, 1) Then
Sleep(50)
Else
Sleep(90)
EndIf



Tambien lo he expresado asi pero no se ni por k XD




If PixelSearch(44,55, 55, 44, 0xA13C23, 1)==1 Then
Sleep(50)
Else
Sleep(90)
EndIf



Gracias!
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: PixelSearch (problema de expresion)

Mensaje por joana »

No soy ninguna experta, pero PixelSearch devuelve un array.

Tonces

Código: Seleccionar todo

If IsArray(PixelSearch(...)) Then
   Opcion A ;Aquí si.
Else
   Opcion B ;Aquí no ha encontrado pixel.
EndIf
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: PixelSearch (problema de expresion)

Mensaje por Chefito »

Lo explica perfectamente en la ayuda. Si da @error=1 es que no lo ha encontrado, y si lo encuentra da @error=0. Si encuentra el color, la función devuelve un array de dimensión 2, las cuales son las coordenadas del pixel encontrado, x e y.
Mirando el ejemplo, y adaptandolo un poco:

Código: Seleccionar todo

; Find a pure red pixel in the range 0,0-20,300
Local $coord = PixelSearch(0, 0, 20, 300, 0xFF0000)
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
else
    msgbox(0,"No encontrado", "El pixel de ese color no ha sido encontrado")
EndIf
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Josede
Mensajes: 11
Registrado: 13 Jul 2012, 00:30

Re: PixelSearch (problema de expresion)

Mensaje por Josede »

Vale gracias a los dos, al final lo he puesto asi


PixelSearch(44,55, 55, 44, 0xA13C23, 1)
If not @error then
Sleep(50)
Else
Sleep(90)
EndIf

Gracias.
Josede
Mensajes: 11
Registrado: 13 Jul 2012, 00:30

Re: PixelSearch (problema de expresion)

Mensaje por Josede »

En este caso, si se da que encuentra el pixel, directamente leera "Estudiar" (no leera "Marmol" ) y seguira leyendo "Minotauro".

Código: Seleccionar todo

While1

Jose()
Arbol()
Tesoro()

PixelSearch(44,55, 55, 44, 0xA13C23, 1)
  If not @error then
      Estudiar()
  Else
      Marmol()
  EndIf

Minotauro()

WEnd
Ahora os pongo otro ejemplo a ver si seria posible o como tendria que ponerlo.

Código: Seleccionar todo

While1

Jose()
Arbol()
Tesoro()

PixelSearch(44,55, 55, 44, 0xA13C23, 1)
If not @error then
   Estudiar()
EndIf

Minotauro()

WEnd
Yo simplemente quiero que empiece a leer y que si encuentra el pixel Directamente haga lo que pone en "Estudiar" pero sin embargo que deje de leer es decir, que no lea "Minotauro" (o todo lo que haya despues) y que directamente vuelva a empezar.



Gracias Un saludo-
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: PixelSearch (problema de expresion)

Mensaje por jamaro »

Hola Josede:

Con tú último código ¿has probado a poner Minotauro() después de WEnd ?

Con esto lo sacas del bucle ¿funciona?
Josede
Mensajes: 11
Registrado: 13 Jul 2012, 00:30

Re: PixelSearch (problema de expresion)

Mensaje por Josede »

Pero si lo saco, no lo leera nunca. Yo lo unico que quiero es que si en alguna ocasion encuentra el pixel, vuelva empezar desde el principio directamente y en el caso de que no encuentre el pixel, siga leyendo en este caso Minotauro() o lo que hubiere.
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: PixelSearch (problema de expresion)

Mensaje por joana »

Entonces cojes y pones:

Exit: Para salir del script.
ExitLoop: Para salir del bucle en el que estés.
Josede
Mensajes: 11
Registrado: 13 Jul 2012, 00:30

Re: PixelSearch (problema de expresion)

Mensaje por Josede »

Osea que si pongo Exitloop, volveria a empezar desde el principio? gracias
joana
Aprendiz de Mago
Mensajes: 39
Registrado: 09 Jul 2012, 13:33

Re: PixelSearch (problema de expresion)

Mensaje por joana »

Josede escribió:Osea que si pongo Exitloop, volveria a empezar desde el principio? gracias
Yeah, saldrías del Loop, pero en la línea siguiente es decir. Si sólo tienes un bucle se acabo.
Responder