2013-08-07 3 views
1

전 신기한 자바 학습자입니다. 나는 단순한 미니 게임을위한 봇 (또는 트레이너, 무엇이든간에)을 개발하려고 노력하고 있는데, 나는 이미지 스크린을 분석하고 해당 액션을 눌러야한다. 따라서 : -화면의 이미지 찾기

처음으로 sikuli ScreenRegion을 사용하려고했지만 예상대로 진행되지 않았습니다. 내가 뭘 시도했는지는 다음과 같다. -

그러나 조건이 거짓 일지라도 액션으로 넘어 갔다. 이 상황에서 ScreenRegion의 응용 프로그램이 잘못 되었습니까? 또는 sikuli와 다른 것을 사용해야합니까?

+0

분명히 s.find는 정의 된 영역에서 이미지를 찾을 수없는 경우 Null을 반환하므로 "if (s.find (x))"가 유효한 java가 아닌 ... – AKDADEVIL

+0

코드는 ' 당신이 꽤 많이 물린 것을 생각하도록 도와주세요. 그러나 상황에 따라 다릅니다. 찾으려고하는 이미지가 특정 장소에 나타나거나 화면의 어느 곳에서나 확대 및 회전 할 수 있습니까? – Humungus

+0

@AKADEVIL : 내 코드는 당신이 말한 것과 같았습니다. – Preformer

답변

4

Java를 사용하지 않고 Windows에서 작업하는 경우 UI 자동화를 위해 Automa - Python 도구/라이브러리를 사용할 수 있습니다. 그것은 이미지 작업을 허용합니다.

Image("arrow_screenshot1.png").exists() # returns True or False 

은 이미지를 클릭하여 : 이미지가 화면에 존재하는지 여부를

예를 들어, 알아

Image("arrow_screenshot1.png").x # returns x-coordinate 
Image("arrow_screenshot1.png").y # returns y-coordinate 
Image("arrow_screenshot1.png").center # returns Point object 
:

click(Image("arrow_screenshot1.png")) 

이미지를 확인하려면은/중심 좌표

이미지가 화면에 나타날 때까지 기다리는 중 :

wait_until(Image("arrow_screenshot1.png").exists) 

내가 Automa를 사용하면 아주 쉽게 당신이 필요로하는 무엇을 달성 할 수 있다고 생각합니다!

면책 조항 : 나는 Automa의 개발자

+0

좋은 생각, 이미지가있는 경우 화살표 키를 눌러야합니까? 또한 제어 문이 있습니까? – Preformer

+0

그것도 훨씬 쉽습니다. 어떤 화살표 키를 누를 지에 따라 _press (LEFT) _ 또는 _press (UP) _ 등을 호출하면됩니다. Automa의 명령 전체 목록은 http://www.getautoma.com/docs에서 찾을 수 있습니다. – Tytus

+0

If와 같은 제어문? 이 프로그램은 그들없이 할 수 없기 때문에 – Preformer

2

중 하나 있어요는, 사람을 그것을 알아 냈다! sikuli의 이미지 인식이 흐릿한 것 같습니다. targetImage.setMinRank(1.00)은 작동하지 않을 것이지만, targetImage.setMinRank(0.99)으로 프로그램을 실행하려고하면 모든 것이 유동적으로 작동합니다. 도와 줘서 고마워.

+0

대상 이미지의 형식은 무엇입니까? 손실 된 형식으로 저장 한 경우 완벽한 일치가 불가능할 수 있습니다. (Sikuli 버그도 가능하지만 완벽하게 일치하는 스크립트를 사용하여 작업했습니다.) –