Página 1 de 1

PixelSearch (problema de expresion)

Publicado: 15 Jul 2012, 20:37
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!

Re: PixelSearch (problema de expresion)

Publicado: 16 Jul 2012, 00:04
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

Re: PixelSearch (problema de expresion)

Publicado: 16 Jul 2012, 00:58
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.

Re: PixelSearch (problema de expresion)

Publicado: 16 Jul 2012, 01:45
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.

Re: PixelSearch (problema de expresion)

Publicado: 16 Jul 2012, 15:48
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-

Re: PixelSearch (problema de expresion)

Publicado: 16 Jul 2012, 18:56
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?

Re: PixelSearch (problema de expresion)

Publicado: 16 Jul 2012, 20:02
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.

Re: PixelSearch (problema de expresion)

Publicado: 17 Jul 2012, 10:08
por joana
Entonces cojes y pones:

Exit: Para salir del script.
ExitLoop: Para salir del bucle en el que estés.

Re: PixelSearch (problema de expresion)

Publicado: 17 Jul 2012, 22:15
por Josede
Osea que si pongo Exitloop, volveria a empezar desde el principio? gracias

Re: PixelSearch (problema de expresion)

Publicado: 23 Ago 2012, 07:33
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.