• 締切済み

processingについて

1)横480ピクセル、縦800ピクセルの実行ウィンドウ上に、その時の時:分:秒が「18:05:01」のように表示されるようにする。 2)時計の背景に、「色」、「画像」、「図形の描画による柄」のいずれかを設定する。 3)if文を使用し、   「マウスの左ボタンがクリックされている時」には、その時の年月日が表示されるように   「マウスの右ボタンがクリックされている時」には、別の何かが起きるようにしよう。   なお、「マウスのボタンが何もクリックされていない時」には、1)のようにデジタル時計が表示されていること。 また、クリックの状態から指を離したら、画面の状態は元に戻るようにすること。 上記の条件でプログラミングしないといけないのですが、何度考えても上手く実行されません。この程度のレベルが出来なくて恥ずかしい限りなのですが、誰か手助けをしていただけないでしょうか? 下記が自分の書いたプログラミングになります。(右クリックの条件を自分は”線を描く”ように設定しました。) PFont font; PImage img; void setup(){ size(480, 800); fill(0); font = loadFont("xxxxxxxxxxx.vlw"); textFont(font); img = loadImage("xxxxxxxxxxxx.jpg"); image(img, 0, 0); } void draw(){ text(nf(hour(), 2 + "/" + nf(minute(), 2) + ":" + nf(second(), 2), 150, 245); if(mousePressed == true){ if(mouseButton == LEFT){ text(month() + "/" + day() + "/" + year(), 150, 270); }else if(mouseButton == RIGHT){ stroke(23, 9, 89); strokeWeight(2); line(mouseX, mouseY, pmouseX, pmouseY); } } }

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

ただ「上手く実行されない」と書くよりは、問題だと思っていて修正したい動作を もっと具体的に書いた方が良いと思います。 とりあえず見た感じ 1) 時刻表示がきちんと変わらず重ね書きされてしまう 2) クリックしたマウスボタンを戻しても表示が元通りにならない といったところですか? これは、画面を描画するときに前の状態をクリアしていないからです。 画面をクリアするにはたとえば background(背景色)という命令を使います。 ただし、こうすると今度は右ボタンを使って書いた線がおかしくなってしまいます。 これを期待通りにするにはどうすればいいかは、まずは御自分で考えてみてください。

参考URL:
http://www.musashinodenpa.com/p5/index.php?pos=899

関連するQ&A