首页 > 解决方案 > 使用 SikuliX 的游戏机器人无法正常工作

问题描述

我正在使用 SikuliX IDE 创建或至少尝试使用移动游戏农民机器人,但我是 Python 新手,我的主要语言是 Java,不知道如何使用 Python 正确处理游戏逻辑。

游戏逻辑是: 如果你把怪物1的rank1放在space1上,
有4个空间可以放一个怪物,你不能把同一个怪物的rank2放在任何其他空间 游戏检测到你选择一个怪物如果你拿着怪物肖像2秒,然后 在怪物达到最大等级后拖放到空间,自动运行停止并出现消息屏幕“levelMax” 如果我用完运行,自动运行停止,消息屏幕出现“runsZero”并且机器人停止




bot流程:
第一次运行是在出现“levelMax”后触发启动bot
,进入将所有怪物等级最大值替换为1级怪物的过程,然后重新开始循环,直到所有运行结束或没有4个怪物1级。

ps:我会在编辑时发布调试消息,我忘了写下来
ps2:你们可能根据逻辑检测到游戏

编辑: [错误] 错误原因:回溯(最近一次调用最后一次):文件“C:\SikuliX\dragAndDrop.sikuli\dragAndDrop.py”,第 40 行,在 monstroUm = monster[monstroInt] IndexError:索引超出范围: 2

monster1 = ["rank1.png","rank2.png"]
monster2 = ["rank1.png","rank2.png"]
monster3 = ["rank1.png","rank2.png"]
monster4 = ["rank1.png","rank2.png"]
monstersArray = [monster1, monster2, monster3, monster4]
levelMax = "1524942610020.png"
close = "1524942624936.png"
manage = "1524942638721.png"
okButton = "1524943405776.png"
start = "1524943415429.png"
yesButton = "1524943424798.png"
runsZero = "runsZero.png"
closeChat = "closeChat.png"
arrowLeft = "arrowLeft.png"

nox = App.focus("NoxPlayer 6.0.8.0")
localizacoes = [Location(355, 324),Location(357, 506),Location(356, 679),Location(357, 855)]
Settings.DelayBeforeDrag = 2.5
Settings.DelayBeforeDrop = 2.5
running = True
while (nox.hasWindow() and running):
   localiza = 0
   monstersArrayInt = 0
   monstersSelect = monsters
   while localiza <= len(localizacoes):
       while monstersArrayInt <= len(monstersSelect):
            monster = monstersSelect[monstersArrayInt]
            monstroInt = 0
            while monstroInt <= len(monster):
                monstroUm = monster[monstroInt]
                if monsterWindow.exists(monstroUm,3):
                    noxWindow.dragDrop(monstroUm,localiza)
                    del monstersSelec[monstersArrayInt]
                    localiza += 1
                    break
                elif monstroInt == len(monstersSelect):
                    monstersArrayInt += 1
                    break
                else: #exists(monstroUm) == False:
                    monstroInt += 1
                    wheel(monsterWindow,WHEEL_DOWN, 2)

标签: pythonsikulisikuli-script

解决方案


推荐阅读