Question #215490 on Sikuli changed: https://answers.launchpad.net/sikuli/+question/215490
Ben gave more information on the question: I am adding the new improved script below. I would like each snippets for each surfbar to be seperate so I can edit them at will...after the script below , I included the snippet that works on the flying objects that I must intergrate within the workflow but how? # -------------------------------------------- # functions to be used in different situations def captureSymbol(i = 0): r = other[i] x = r.x + sbMarginLeftRight w = r.w - 2 * sbMarginLeftRight y = r.y + sbMarginTopBottom h = r.h - 2 * sbMarginTopBottom r = Region(x, y, w, h) r.highlight(1) return capture(r) def captureLeftSmallest(): # capture the image to search # we have to try to get the smallest capture possible # since the probe and the target have different positions # this can be set fixed, if it is always the same # find the bottom of image greyBelow = "1354183324452.png" g = left.find(greyBelow) #g.highlight(1) while True: g1 = g.above(sbHeight-g.y) g1.x -= 4; g1.w += 8 g1 = g1.exists(greyBelow) if not g1: break g = g1 #g.highlight(1) b = g.y # find the left side of image greyLeft = "1354183672313.png" g = left.find(greyLeft) #g.highlight(1) while True: g1 = g.right(left.w - g.x) g1.y -= 4; g1.h += 8 g1 = g1.exists(greyLeft) if not g1: break g = g1 #g.highlight(1) l = g.x + g.w # define the smallest possible image region symbol = Region(l, b - 60, 50, 60) #symbol.highlight(3) return capture(symbol) def checkCells(imgSymbol, start = 0): # find the cell containing the symbol match = None for i in range(start, len(other)): if other[i].exists(imgSymbol, 0): match = other[i] break if not match: return None match.highlight(1) return match # end function area # ------------------------------------------------------------ # ----------------------- start of main workflow ------------- # this is based on surfbar9 # to run this script, surfbar9 must be visible on the screen #Wait for counter on Surfbar to reach Zero wait(10) #Mouse speed Settings.MoveMouseDelay = 0 # find the position imgBase = "1354267496167-1.png" fix = find(imgBase) fix.highlight(1) # get the symbol rsym = Region(fix.x + fix.w + 8, fix.y + 14, 35, 35) symbol = capture(rsym) rsym.highlight(1) # get the surfbar sbLeft = fix.right().find("1354267650780.png") sbLeft.highlight(1) sbHeight = 45 sbWidth = 330 sb = Region(sbLeft.x + 4, sbLeft.y + 3, sbWidth, sbHeight) sb.highlight(1) sbMarginTopBottom = 20 sbMarginLeftRight = 20 # setup the regions for the others numCells = 4 oWidth = (sb.w)/4 other = [] for i in range(numCells): x = sb.x + i*oWidth - 4 other.append(Region(x, sb.y, oWidth+8, sbHeight)) for r in other: pass r.highlight(1) found = checkCells(symbol) if not found: print "not found"; exit(1) click(found) type(Key.TAB,KEY_CTRL) Flying objects snippet I have which has similar code to the above script. I'm puzzled on how to put them together? # -------------------------------------------- # functions to be used in different situations def captureSymbol(i = 0): r = other[i] x = r.x + sbMarginLeftRight w = r.w - 2 * sbMarginLeftRight y = r.y + sbMarginTopBottom h = r.h - 2 * sbMarginTopBottom r = Region(x, y, w, h) r.highlight(1) return capture(r) def captureLeftSmallest(): # capture the image to search # we have to try to get the smallest capture possible # since the probe and the target have different positions # this can be set fixed, if it is always the same # find the bottom of image greyBelow = "1354183324452-1.png" g = left.find(greyBelow) #g.highlight(1) while True: g1 = g.above(sbHeight-g.y) g1.x -= 4; g1.w += 8 g1 = g1.exists(greyBelow) if not g1: break g = g1 #g.highlight(1) b = g.y # find the left side of image greyLeft = "1354183672313-1.png" g = left.find(greyLeft) #g.highlight(1) while True: g1 = g.right(left.w - g.x) g1.y -= 4; g1.h += 8 g1 = g1.exists(greyLeft) if not g1: break g = g1 #g.highlight(1) l = g.x + g.w # define the smallest possible image region symbol = Region(l, b - 60, 50, 60) #symbol.highlight(3) return capture(symbol) def checkCells(imgSymbol, start = 0): # find the cell containing the symbol match = None for i in range(start, len(other)): if other[i].exists(imgSymbol, 0): match = other[i] break if not match: return None match.highlight(1) return match # end function area # ------------------------------------------------------------ # ----------------------- start of main workflow ------------- # this is based on surfbar6 # to run this script, surfbar6 must be visible on the screen #Wait for counter wait(10) # Speed up mouse Settings.MoveMouseDelay = 0 # find the position imgBase = "1354182180938.png" top = find(imgBase) top.highlight(2) # get the surfbar sbHeight = 85 sb = top.below(3).below(sbHeight) sb.highlight(2) sbMarginTopBottom = 20 sbMarginLeftRight = 20 leftWidth = 65 # get the area of the left symbol x = sb.x + sbMarginLeftRight w = leftWidth - 2 * sbMarginLeftRight y = sb.y + sbMarginTopBottom h = sbHeight - 2 * sbMarginTopBottom left = Region(x, y, w, h) left.highlight(2) # setup the regions for the others numCells = 4 oWidth = (sb.w - leftWidth)/4 other = [] for i in range(numCells): x = sb.x + leftWidth + i*oWidth - 4 other.append(Region(x, sb.y, oWidth+8, sbHeight)) for r in other: pass r.highlight(1) found = checkCells(capture(left)) if not found: for i in range(numCells - 1): symbol = captureSymbol(i) found = checkCells(symbol, i+1) if found: break if not found: print "not found"; exit(1) click(found) type(Key.TAB,KEY_CTRL) ...after this, it must go back and do the easy surfbar, so in short, easy surfbar, flying objects, easy surfbar etc nonstop! Note that I will add more surfbars to it so it must be simple to do so please...adding the functions part confused me but I'll learn this in time... and must I add these functions to every surfbar snippet? Ben -- You received this question notification because you are a member of Sikuli Drivers, which is an answer contact for Sikuli. _______________________________________________ Mailing list: https://launchpad.net/~sikuli-driver Post to : sikuli-driver@lists.launchpad.net Unsubscribe : https://launchpad.net/~sikuli-driver More help : https://help.launchpad.net/ListHelp