2016-10-23 7 views
0

저는 SikulixIDE 1.1.0을 사용하여 Yugioh 게임 (Windows 10 x64에서 실행)을 재생하는 스크립트를 작성하고 있습니다. 내가 수동으로 게임을 시작하고 다음과 같이 스크립트를 실행 Game screenSikuli 클릭이 적용되지 않습니다.

: 메인 화면을 참조

switchApp("Yu-Gi-Oh! PC") 
click("1477213591920.png") 

내 기대는 "DUEL 모드"라는 링크가 다음으로 이동을 클릭이다 화면. 커서는 항상 해당 링크로 이동하지만 때로는 작동하지만 때로는 그렇지 않습니다.

나는 로그를보고 Sikuli가 클릭 명령을 보냈지 만 어떤 이유로 게임이 그것을 받아들이지 않음을 확인합니다.

[log] App.focus: [8020:Yu-Gi-Oh!] 
[log] CLICK on L(687,488)@S(0)[0,0 1366x768] 

이미 시도했습니다 :

  • doubleClick 대신 click
  • sleep
  • hover

click 그러나 모두가 할 몇 초 이것은 로그입니다 작동하지 않는다.

답변

2

나는 당신이 시도한 것들 중 일부는 도움이 될 것이라고 기대하지만 그렇지 않은 경우 버튼이 실제로 트리거되었는지 여부를 확인해야합니다. 그렇게하기 위해서는 다음 화면이나이 화면을 고유하게 식별하는 부분을 캡처해야합니다. 그런 다음 미리 정의 된 횟수의 시도와 그 사이의 대기 시간이있는 루프를 사용하고 클릭이 작동하지 않으면 두 번 이상 클릭합니다. 그 (의사 코드) 같은 일반적으로 뭔가 : 당신이 SikuliX를 사용하는 경우

attempts = 3 
for attempt in attempts: 
    click(button) 

    if (nextScreen is available): 
     break 

    sleep(time) 
0

ADITION에서 유진 S 답변으로는, 당신은 슬로우 모션에 실행을 시도 할 수 있습니다. 이미지가있는 경우에, 그래서 기본적으로

if exists(Pattern("DualMode.png").similar(0.6), time_in_seconds): 
    click(Pattern("DualMode.png").similar(0.6)) 

, 유사한() 값이 0.8 : 이미지 (밝기 같은) 일부 효과가있는 경우 또한, 당신은 내부의 존재 패턴()를 사용하려고 할 수 있습니다 예를 들어 매초마다 색상이 바뀌는 등의 효과가있을 수 있습니다.

추 신 : 패턴이있는 경우 패턴을 삽입하고 클릭하는 것을 잊지 마십시오. click() 내부에서 이미지를 찾을 수 없음 오류 메시지가 발생할 수 있습니다.

+0

정보를 제공해 주셔서 감사합니다. 하지만 내 경우에는 이미지가 발견되었습니다. 단지 클릭() 명령이 효과가 없습니다. –