• 締切済み

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

  • processingについて

    millis 関数を用いてマウスを押している間の経過時間をマウスカーソルの位置に表示するプログラムを作成せよ。 また、その時点での経過時間の最も長い時間をウインドウに左下に表示してある。動作するように、空欄を埋めよ。 また、変数宣言がされていない変数がある。適切な変数宣言を加えよ。この変数宣言のための空欄は用意されていない。という問題の一番最初の変数宣言?でつまずいています。 プログラムはこんな感じです。 PFont font; int maxTime; (a) pressing=false; void setup(){ size(400,400); maxTime = 0; smooth(); (b) textFont(font,24); } void draw(){ background(255); fill(0); if(mousePressed){ if(pressing == (c)){ startTime = millis(); pressing = (d); } interval = (e)-startTime; text(interval,mouseX,mouseY); }else{ pressing = (f); } if((g)> maxTime){ maxTime = (h); } text(maxTime,0,height-textDescent()); } 一番最初の、(a) pressing=false;の(a)に入るものが分かりません。 他のカッコは回答しなくてもよいので、(a)に入るものを教えてください。 そこさえ分かれば自分で解けそうな気がします。

  • Processingでの10進数表示について

    初めて質問させていただきます。プログラミングについては、全くの初心者です。 Processingで10000からのカウントダウンタイマーを作りたいと思い、様々なサイトを参考にさせていただき、次のようなプログラムを作りましたが、16進数での表示となっており、これを10進数表示に変える方法がどうしても分かりません…。 /** * Countdown(int) * */ import processing.video.*; MovieMaker mm; PFont font; String t; int cont; void setup(){ size(1200, 480); mm = new MovieMaker(this, 1200, 480, "Countdown.mov", 1, MovieMaker.VIDEO, MovieMaker.LOSSLESS); frameRate(100); background(1); smooth(); textSize(400); cont = 10000; } void draw(){ background(0); t = hex(cont, 5); if(cont < 16){ fill(255, 0, 0); } text(t,50,400); if(cont > 0){ cont -= 1; } mm.addFrame(); } void keyPressed() { if (key == ' ') { mm.finish(); println("save movie."); exit(); } } 色々と調べて、どうもhexの部分が良くないのではと思っているのですが、これをどのように変えても上手く行きません。 無知なもので、大変お恥ずかしい質問かと思いますが、ご教示のほどよろしくお願いいたします。

  • processingのマウス操作について

    現在processingを使って、画像のような図を作り、マウスでクリックしたところだけに色がついて、もう一度クリックすると色が消えるというプログラミングを作りたいと思っているのですが、なかなかうまくできません。 以下現在打ち込んでいるものです // Click within the image to change // the value of the rectangle after // after the mouse has been clicked int value = 255; int rect_size = 50; int num = 300 / rect_size; int x; void setup(){ size(300,300); } void draw(){ fill(value); for (int i = #ffffff;i < num;i++){ for (int j = 0;j < num;j++){ if (j%2 == 0){ x = i*rect_size*2; } else { x = i*rect_size*2+rect_size; } rect(x,j*rect_size,rect_size,rect_size); } } } void mouseClicked() { if (value == 255) { value = #aaaaaa; } else { value = 255; } } 使用言語はすべて英語です。 おそらく、drawのところでパターンとしてチェック模様を書いてしまっているのと、1マスだけに限定するという風な命令を書けていないからだと思うのですが、先生に訊いてもよくわかりません。 ご存じの方はご指導ご鞭撻のほどどうぞよろしくお願いします。

  • Processing 円と線分の衝突判定について

    最近プログラミングを始めました。 今、画面の中央から落ちてくる円と、マウスボタンを押したときに三角の頂点から真上に表示される線分の2つが、接触したときに円の位置を画面の最上部に移動させ、その後再び下方向に円が移動する様なプログラムを作っています。 それで、それぞれ円と線分を表示させることはができたのですが、どうやれば円と線分が衝突したことになるか分かりません。 プログラムを載せます size(400,400); } void draw(){ background(0); fill(255,0,0); noStroke(); ellipse(200,y,r,r); y = y + 1; noStroke(); fill(10,10,255); triangle(mouseX,mouseY - 20,mouseX - 14,mouseY + 20,mouseX + 14,mouseY + 20); if(mousePressed){  stroke(248,252,3);  line(mouseX,0,mouseX,mouseY-20); } } あとはif命令を書き加えれば良いと思うのですが、どうしても条件式が思いつきません。 GW中ずっと悩んでいて分からなかったので質問しました。

  • マウスの座標を表示しようとしたのですが、できません

    //マウス座標の表示・・・ができない? ctx.fillStyle="rgb(0, 0, 0)"; ctx.font = "18px Arial"; //Hello Worldは表示できる ctx.fillText("Hello World!", 20, 250); //この書き方が、おかしい? ctx.fillText("mouseX =" + mouseX, 50, 50); ctx.fillText("mouseY =" + mouseY, 50, 75); Hello World!のようにcanvas上に座標を表示するには、どうすればいいのでしょうか? ちなみに、マウス座標そのものは alert("mouseX = "+mouseX+"\n"+"mouseY = "+mouseY); で確認できたので取得できてます。(添付画像有)

  • テキストボックス、ボタンが見えません、画像の影響で

     Java初心者です、宜しくお願いします。  アプレットに画像とテキストボックス、ボタンを張り付ける プログラムを書きましたが、実行すると画像を張り付けているためか、 テキストボックスが指定した大きさに見えず、せいぜい1文字程度の 大きさにしか表示されません。  また、ボタンも実行後には見えない状態で、マウスでクリックする と見えるようになります。  最初から、指定した大きさで、テキストボックス、ボタンを表示させる方法は あるのでしょうか。  また、別のクラスでパネルに色をつけていますが、全く実行されて いないようです。  この原因が分かりません、何故でしょうか。  以上宜しくお願いします。 ======================================================== public class Sample1 extends JApplet { private static final long serialVersionUID = 1L; MediaTracker tracker ; Image img ; Text1 t1 ; public void init() { Container cnt = getContentPane( ); setLayout( null ) ; t1 = new Text1( ) ; t1.init( ) ; cnt.add( t1 ) ; tracker = new MediaTracker( this ) ; img = getImage( getDocumentBase() , "../a.jpg" ) ; tracker.addImage( img , 0 ) ; } public void start() { try { tracker.waitForAll(); } catch (InterruptedException e) { } } public void paint( Graphics g ) { g.drawImage( img , 50 , 50 , 300 , 300 , this ) ; } } //=================================================================== class Text1 extends JPanel { private static final long serialVersionUID = 1L ; JTextField jtf ; public void init( ) { setLayout( null ) ; setBackground( Color.yellow ) ; setBounds( 30 ,30 ,500 , 500 ) ; jtf = new JTextField( "abcde" ) ; jtf.setBounds( 150 , 150 , 100 , 30 ) ; add( jtf ) ; JButton jbt = new JButton( "Check" ) ; jbt.setFont( new Font( "SansSerif" , Font.BOLD , 20 ) ) ; jbt.setBackground( Color.red ) ; jbt.setForeground( Color.blue ) ; jbt.setBounds( 100 , 200 , 220 , 40 ) ; this.add( jbt ) ; } }

    • ベストアンサー
    • Java
  • C# textbox内のテキストをクリックで表示

    C#でTextbox内のテキストをpicturebox上でマウスをクリックした位置に 表示するプログラミングを教えていただきたいです…。 ググってみましたが、なかなか見つからなくて

  • innerHTMLを使わずに…

    初めまして。 よく、リンクに触れると、下に説明文が表示される…というようなサイトがありますよね。 それの応用で、innerHTMLを使わずに以下のような物を作りたいのですが、お力を貸してくださいm(_ _)m ボタンAとボタンBがあって、ボタンAをクリックすると画像Aを表示。 ボタンBをクリックすると画像Aから画像Bに表示が切り替わる。 その表示した画像に個別のリンクを貼る。 <table border="0" cellspacing="0" cellpadding="0"> <tr> <td><A onMouseOver="img.innerHTML='<a href=URL><IMG src=画像Aアドレス></a>'" onMouseOut="text.innerHTML='<a href=リンクA><IMG src=画像Aアドレス></a>'">ボタンA</A></td> <td rowspan="2"><font id="img"></font></td> </tr> <tr> <td><A onMouseOver="img.innerHTML='<a href=URL><IMG src=画像Bアドレス></a>'" onMouseOut="text.innerHTML='<a href=リンクB><IMG src=画像Bアドレス></a>'">ボタンB</A></td> </tr> </table> という物を作りたいのですが、innerHTMLは対応していないブラウザが多いので、使用したくないのです。 JavaScript、CSSはOKです! よろしくおねがいします。

    • ベストアンサー
    • HTML
  • クリックするたびにテキストを1個ずつ表示させる

    マウスクリックをしてテキストを1個ずつ表示させたいです。 stage.addEventListener(MouseEvent.CLICK, mc); function mc(event:MouseEvent):void{ var text1 : TextField = new TextField(); text1.text = "Hello World"; this.addChild(text1); } を実行すると、クリックするたびテキストが1つずつ増えていきます。 これを前回のを消去して新たに表示というような形で1つずつ表示させることはできないでしょうか?

    • ベストアンサー
    • Flash
  • ブロック要素内のテキストのセンタリング

    HTMLとCSSを使いマウスオーバー処理をしてマウスを重ねると背景の色が変わる 190ピクセル×125ピクセル のボタンを作りました。テキストがない部分をクリックしてもリンク先にジャンプできるように「display: block;」でブロック要素にしています。 一つ困ったことがありまして、「vertical-align」を使ってもブロック要素内の「トップページへ戻ります。ここをクリックして下さい」という文章がボタン内で縦方向にセンタリングできないのです。 「line-height」を「height」の値に合わせる方法もやってみましたが、文章が2行に渡るためできませんでした。文章の長さはボタンにより異なり複数行に渡る事もあるため文章を1行にするという方法は選べません。 JavaScriptは勉強したことがないので詳しく分かりませんが、JavaScriptを使えば私がやろうとしていることはできますでしょうか? どなたかお知恵をお貸し下さい、よろしくおねがいします。 HTML**************************************************************** …(省略)… <div class="button"> <a href="index.html">トップページへ戻ります。<br>ここをクリックして下さい</a> </div> …(省略)… CSS***************************************************************** .button { width: 190px; font-weight: bold; text-align: center; } .button a{ min-height: 125px; background: #FFEF6D; display: block; color: #F00; font-weight: bold; text-decoration: none; } .button a:hover{ background: #FC0; text-decoration: none; } .button a:acyive{ background: #FFEF6D; text-decoration: none; }

    • ベストアンサー
    • HTML