★★ Java の宿題ここで答えます Part 65 ★★
at TECH
654:デフォルトの名無しさん
08/07/26 11:10:30
>>642
中にコメントの付いていない paint() と mouseClicked() が肝心な部分だなw
初期表示時、paint() では n=0 の為に背景のみが描画される。
任意の位置をクリックすると mouseClicked() が呼ばれ、座標を配列x[],y[] の p の位置に保存、
p を移動させ n を最大 5 までの間増加させて、repaint() により paint() を実行させる。
クリック後の paint() では背景描画後、n が 1 以上になっているので、x[],y[] に保存されている
各位置(から-22した位置を左上とした位置)に n 個((x[0],y[0])〜(x[n-1],y[n-1]))顔を描画する。
ミソは p の移動の p=(p+1)%5 か。これによって p は
0,1,2,3,4,0,1,2,3,4,0,1,…
とクリックする度に 0〜4 の範囲で循環するため、5回以上クリックした場合は最後にクリックした位置の
x[],y[] が上書きされることになるので、顔の描画も最後の位置が最新の位置に入れ替わる形になる。
但し描画の順は常に x[0],y[0] からなので、顔画像の重なりはクリック順と関係ない。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5382日前に更新/381 KB
担当:undef