processingプログラミング作成をしています。
mouseファンクション(mouseClickedとか)やkeyファンクション(keyPressed)などのファンクションをつかったときに、クリックやkeyをたたいたら次々変わっていくみたいなプログラムを作成したいんですが、教えてください。
いまは画面を4等分にし、mouseClickedををつかったらランダムに選ばれたスペースを赤く塗り、もう一回mouseをクリックしたら、その赤く塗られたのは消えて、次のまたランダムに選ばれたスペースへと移動する。。それを何回もやるというプログラミングにしたいです。
sizeは600,600でそれぞれのrectは
rect(0,0,300,300)
rect(300,0,600,300)
rect(0,600,300,300)
rect(600,600,300,300)
で区切ってます。ずっと時間かけてやってますが、これをどうやってrandomファンクションにし、それをランダムに選ばれたスペースをマウスクリックしたら赤く塗られるようにするかがもっていくかがどうしてもわかりません。
あと、もう一回クリックしたら前にクリックした場所が消えるというのもわかりません。
これが今までに書いたプログラムです。
いまはif elseをつかっています。
よろしくお願いします。
void setup()
{
size(600,600);
strokeWeight(2);
background(255);
line(0,width/2,600,width/2);
line(height/2,0,height/2,600);
}
void draw()
{
fill(255,0,0);
}
void mouseClicked()
{
if( mouseX <= width/2)
{
fill(255,0,0);
rect(0,0,width/2,height/2);
}
else
{
rect(width/2,0,300,300);
fill(255,0,0);
}
if (mouseX > height/2)
{
rect(0,width/2,height/2,height);
fill(255,0,0);
}
else
{
rect(width/2,height/2,width,height);
fill(255,0,0);
}
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは、みっちょです。
void setup()
{
size(600, 600);
strokeWeight(2);
background(255);
for (int i=0; i<2; i=i+1) {
for (int j=0; j<2; j=j+1) {
rect(i*width/2, j*width/2, (i+1)*width/2, (j+1)*height/2);
}
}
}
void draw()
{
}
void mouseClicked()
{
fill(255, 255, 255);
for (int i=0; i<2; i=i+1) {
for (int j=0; j<2; j=j+1) {
rect(i*width/2, j*width/2, (i+1)*width/2, (j+1)*height/2);
}
}
int x = int(random(2));
int y = int(random(2));
fill(255, 0, 0);
rect(x*width/2, y*width/2, (x+1)*width/2, (y+1)*height/2);
}
こんな感じだとif else無しでいけますね。
いかがでしょうか?
No.1
- 回答日時:
こんにちは。
みっちょです。processing自体を使ったことがなかったのですが、ご質問の内容を見てみてなんだか面白そうなので使ってみたところ、言われているような事ができました。
processingというものを初めて起動して10分間くらいで仕上げたプログラムなので、何か本当はイケない書き方などやってるかもしれません。とりあえずこんな感じでどうでしょう?という感じで☆
int i;
void setup()
{
size(600,600);
strokeWeight(2);
background(255);
rect(0,0,width/2,height/2);
rect(width/2,0,300,300);
rect(0,width/2,height/2,height);
rect(width/2,height/2,width,height);
}
void draw()
{
fill(255,0,0);
}
void mouseClicked()
{
fill(255,255,255);
rect(0,0,width/2,height/2);
rect(width/2,0,300,300);
rect(0,width/2,height/2,height);
rect(width/2,height/2,width,height);
int r = int(random(4));
fill(255,0,0);
if(r==0)
{
rect(0,0,width/2,height/2);
}
if(r==1)
{
rect(width/2,0,width,height/2);
}
if(r==2)
{
rect(0,width/2,width/2,height);
}
if(r==3)
{
rect(width/2,height/2,width,height);
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- その他(プログラミング・Web制作) 物理の斜方投射の目盛り線とx軸、y軸の追加について 3 2023/05/26 21:11
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlファイルを開いた時の画面...
-
javascriptでのポップアップウ...
-
町内会での不倫
-
window.openでフルスクリーン表...
-
window.opener.location.href ...
-
サブウインドウの高さを自動で...
-
<a href="#" …>の意味を教えて...
-
bodyにidをつける理由は何ですか?
-
スマホ上で、左右スワイプで次...
-
インラインフレームで表示され...
-
jqueryでのkeydownイベント発生...
-
条件分岐で、読み込む外部スク...
-
外部jsファイルの変数に代入す...
-
ユーザーが更新ボタンを押さな...
-
Javascript でText file の書き...
-
getElementsByNameで要素が取得...
-
外部ファイルを読み込ませるた...
-
プルダウンと入力を両方行う検...
-
【js】onsubmit属性が変更できない
-
セキュリティ保護の警告が出な...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
新しいウィンドゥを最大化で立...
-
SQLのWHEREで全てを質問する方法
-
htmlファイルを開いた時の画面...
-
window.openでフルスクリーン表...
-
小窓を表示する時に、必ず右上...
-
window.openで404エラーがでます
-
ウィンドウサイズを変更するには?
-
外部からのjs呼び出しについて。
-
window.openの後にエンコードを...
-
javaでサムネイルをクリックし...
-
エクセルファイルをIE のウィン...
-
Canvasを使って描画して面積取得
-
町内会での不倫
-
IF文で該当の処理を通らない
-
ブックマークレット target指定
-
サブウインドウの高さを自動で...
-
モニターサイズによるページ振...
-
JAVAでリンクボタンを作成して...
-
IEのタイトル変更方法について
-
文字をクリックすると 小窓が開く
おすすめ情報