2016-12-31 3 views
-1

나는 페이스 북의 메신저 농구 나 축구를 나를 위해 봇을 만들려고 노력하고있다. 나는 몇 년 전에 뭔가를 만들었지 만 두 게임 모두에 문제가있었습니다. 바구니가 너무 빨리 움직이기 시작했을 때 농구에서는 프로그램이 실수로 계산을하고 축구가 빠르게 움직였습니다. Robot.createScreenCapture()를 사용하여 화면 조각을 만든 다음 BufferedImage에 저장하고 이미지의 모든 픽셀을 확인했지만 빠른 속도는 아닙니다 (피아노 타일 2도 시도했습니다). 나는 더 빠른 방법을 필요로합니다.Java BufferedImage = Robot.createScreenCapture() 빠르지 않다

+0

** ** 빠른 것만으로는 충분하지 않습니다 무엇 ? 화면 캡처 자체? 저것은 알려진다 : http://stackoverflow.com/q/646089/3182664, http://stackoverflow.com/q/17665529/3182664, http://stackoverflow.com/q/19843050/3182664 및 다른 사람. 아니면 분석 속도가 너무 느립니까? 그런 다음 어떻게이 "픽셀 검사"를했는지 보여주십시오. 그렇지 않으면 추측 만 할 수 있습니다. – Marco13

+0

무엇이 빠르지는 모르겠지만 내 프로그램은 그냥 missclick입니다. 그래서 그것은 seraching 프로세스이거나 화면 캡처 자체입니다. 나는 for 루프를 for 루프로 사용하고있다. 원시적 인 방법이지만, 더 빠르다. – Konik

답변

0

BufferedImage 객체에서 볼의 위치를 ​​지정하는 방법에 대한 세부 정보를 제공하지 않습니다. 당신은 할 수

:

  • 는 소위 로그 검색에 의한 위치 프로세스 효율성을 향상시킬 수 있습니다.
  • 모션 예측 기술을 사용하여 검색 영역을 줄입니다.

두 가지 중 하나를 시도하지 않은 경우 ('... 모든 픽셀 ...'이라고 말한 것), 처음부터 시작합니다. 거친 부분을 스캔하여 볼의 대략적인 위치를 찾습니다. 그런 다음 대략적인 위치 주변의 축소 된 검색 영역에서 위치를 조정하십시오.

내가 여기서 n은 볼 반경 또는 더 정확하게 SQRT (2 * r에 * r에)입니다 매 n 번째 행과 열을 스캔하는 것을 의미 거친 격자를 사용하려면

+0

내가 농구 봇을 만들 때 한 줄의 픽셀만을 검사하고 있었고 화면이 너무 빨라서 화면 캡처가 충분히 빠르지 않았습니다. 그래픽 카드에 대한 액세스 권한이 있어야 할 지 모르겠지만 그런 것들. – Konik