2011-01-20 6 views
1

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 
+0

"캔버스"작업의 의미에 대해 좀 더 설명하겠습니까? 이미지 리소스를 개발하기위한 도구에 대해 생각하고 있습니까? 아니면 "창"을 제어하는 ​​것과 똑같습니까? – hardmath

+0

캔버스로 말하자면 나는 기하학적 인 도형을 그리거나 이미지를 그릴 수있는 영역을 의미합니다. 나는 몇 가지 테스트를했고 지금은 '창'으로 작업하고 있습니다. 올바른 구조인지 확실하지 않지만 지금까지는 작동합니다. 내 목표는 .gif 또는 .png 파일에서 가져온 일부 안경을 이동하고, 일시 중지하고, 뒤집은 것 위에 화살표를 놓고 반복하는 것입니다. – Igor

+0

XPCE 데모에서 요술쟁이 및 캥거루 애니메이션을 살펴 보셨습니까? – hardmath

답변

0

이 검색 가능한 PDF가 도움이 될까요? 사진에 대한

link text

"제 5 장 간단한 그래픽"회담 (예. 캔버스).

260 페이지에는 지연을 도입하기 위해 타이머를 사용하는 예제가 있고 266 페이지에는 깜박이는 그래픽에 타이머를 사용하는 예가 나와 있습니다.

페이지에서 '그래픽 -> 플러시'를 사용하여 명시 적으로 강제로 다시 그립니다.

관련 문제