我在玩一个在线的flash游戏,你必须尽快点击白框。我怎么能用java实现自动化呢?盒子的位置是随机的。
我试过使用Robot
类和getPixelColor
,但那太慢了。
所以我需要做的是:
我的游戏窗口是500x500窗口,所以从中获取像素
找到5x5个白盒子
点击他们
有什么建议吗?
最佳答案
您可以使用Rectangle类,使用“contains”方法。
或者你可以创建自己的,基本上是这样工作的:
记录下你的盒子,它们当前的位置(x,y)和它们的(宽度,高度)
使用mouseClicked()事件获取单击的(x,y)位置
在mouseClicked()内,循环查看所有框,并检查鼠标单击(x,y)是否在框内
例如,如果屏幕上有两个框:
boxA: (x, y, width, height) = (0, 0, 10, 10)
boxB: (x, y, width, height) = (20, 20, 10, 10)
这将为您提供两个框,每个框的大小为10x10像素。”boxa的左上角是(0,0),boxb的左上角是(20,20)。
如果“mouseclicked”事件的(x,y)坐标是(7,7),那么它在“boxa”的范围内(因为点(7,7)在(0,0)和(10,10)之间)
如果“mouseclicked”事件的(x,y)坐标是(23,25),那么它在“boxb”内,因为(23,25)在(20,20)和(30,30)之间。
你说得对,getpixelcolor对于你想要做的事情来说太慢了。在盒子列表上循环会快得多。
如果您想深入研究一个更深入的例子,这里有一篇关于collision detection概念的文章。