XPCE (정확한 내용은 four glasses puzzle)에 간단한 애니메이션을 작성하려고합니다. 튜토리얼을 보았으므로 결과가 실망 스럽기 때문에 XPCE에 대해서는 전혀 모른다.XPCE 튜토리얼을 찾고
- 는 "캔버스"
- 애니메이션
- 타이머
편집 작업 : 좋아, 더 자세한 문제입니다 : 내가 원하는 사람이 다음에 어떤 재료 날 지점 수 두 개의 상자를 그리고 2 초를 기다린 다음 상자를 숨긴 다음 타이머를 시작하십시오.
new(@box1, box(100,100)),
send(W, display, @box1),
new(@box2, box(100,100)),
send(W, display, @box2, point(200, 200)),
% wait two seconds here
% hide the boxes here
new(Msg1, and(message(B1, relative_move, point(5, 0)),
message(B4, relative_move, point(0, 5)))),
send(W, attribute, attribute(timer, new(T, timer(0.1, Msg1)))),
send(T, start),
편집 2 : 좋아, 여기에 또 다른 질문 (? 내가 새 질문을 열어야합니다)은이 :
가get_file(0, 'glass.gif').
get_file(180, 'glass180.gif').
main(GA, GB, GC, GD) :- % e.g. main(0,0,180,0).
new(B1, figure),
get_file(GA, G1),
send(B1, display, new(BM1, bitmap(G1))),
send(BM1, transparent, @on),
send(W, display, B1, point(0,0)),
%analogically for the other three glasses
나는 새를 설정하고 싶습니다 : 이것은 내가 사용하고 코드입니다 B1
에 대한 비트 맵. 어떻게해야합니까? BM1
을 변경하면 충분합니까? 아니면 대체 솔루션이 있습니까? 저는 안경을 똑바로 세우거나 뒤집어서 화면을 그어 보이지 않게하고 스와핑 할 생각이었습니다. 그런 해결책에 대한 자세한 내용은 잘 모르겠습니다.
EDIT2 ': 해결했습니다. 후손을 위해 :
send(B1, clear),
send(B1, display, bitmap('glass_while_animating_1.gif')),
send(timer(0.1), delay),
send(B1, clear),
send(B1, display, bitmap('glass_while_animating_2.gif')),
% etc
"캔버스"작업의 의미에 대해 좀 더 설명하겠습니까? 이미지 리소스를 개발하기위한 도구에 대해 생각하고 있습니까? 아니면 "창"을 제어하는 것과 똑같습니까? – hardmath
캔버스로 말하자면 나는 기하학적 인 도형을 그리거나 이미지를 그릴 수있는 영역을 의미합니다. 나는 몇 가지 테스트를했고 지금은 '창'으로 작업하고 있습니다. 올바른 구조인지 확실하지 않지만 지금까지는 작동합니다. 내 목표는 .gif 또는 .png 파일에서 가져온 일부 안경을 이동하고, 일시 중지하고, 뒤집은 것 위에 화살표를 놓고 반복하는 것입니다. – Igor
XPCE 데모에서 요술쟁이 및 캥거루 애니메이션을 살펴 보셨습니까? – hardmath