質問

XPCEでシンプルなアニメーションを書きます(4つのメガネパズル 正確に言うと)。私はXPCEについて絶対に何も知らないので、チュートリアルを調べましたが、結果は残念です。誰かが私に次のような資料を指摘できますか?

  • 「キャンバス」での作業
  • アニメーション
  • タイマー

編集:さて、より詳細な問題があります。2つのボックスを描き、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
役に立ちましたか?

解決

この検索可能なPDFは助けになりますか?

テキストをリンクします

「第5章」は、写真(つまり、キャンバス)について説明しています。

260ページには、タイマーを使用して遅延を導入する例があり、266ページが点滅するグラフィックのためにタイマーを使用して示しています。

40ページには、「グラフィカル - >フラッシュ」を利用して、今すぐ明示的にRedRawを強制することについての言及があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top