teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コピペミス。全面書き直し。

2018/03/25 04:59

投稿

退会済みユーザー
answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  function setup() { //はじめの1回だけ実行
10
10
  createCanvas(640, 480);
11
- photo = loadImage("https://i1.wp.com/dognoie.com/blog/sagamihara/wp-content/uploads/sites/34/2017/06/IMG_6411-640x480.jpg"); //背景
11
+ photo = loadImage("https://i1.wp.com/dognoie.com/blog/sagamihara/wp-content/uploads/sites/34/2017/06/IMG_6411-640x480.jpg"); //背景 //変更//
12
12
  frameRate(100); //速さ10
13
13
  ugoki = 1;
14
14
  }
@@ -47,11 +47,11 @@
47
47
 
48
48
  break;
49
49
  }
50
- ugoki++; //3→4(上のifで3までの条件指定のため動か/////ない)
50
+ ugoki++; //3→4(上のifで3までの条件指定のため動か//連結//ない)
51
51
  }
52
52
  }
53
53
  }
54
- /////
54
+ //独立//
55
55
  function mouseClicked() { //クリックで呼び出される★
56
56
  if (clicked) {
57
57
  clicked = false;
@@ -60,4 +60,38 @@
60
60
  }
61
61
  }
62
62
  ```
63
+ 3箇所いじっています。
63
- 私の環境で動かすために画像ファイル名を変えた(Googleで'犬 640x480'で画像検索して最初にヒットしたものというだけで他意はありません
64
+ 私の環境で動かすために画像ファイル名を変えた(Googleで'犬 640x480'で画像検索して最初にヒットしたもの)
65
+ ・既に指摘があったmouseClickedを独立
66
+ ・後半のコメント
67
+ > //3→4(上のifで3までの条件指定のため動か
68
+ > ない)
69
+
70
+ が途中で改行になっていたのを一体化
71
+ で動いている様子。(完全にあなたの意図通りかはわかりませんが)
72
+
73
+ 途中で問題があってもエラーメッセージとか全然出ないのかなぁ。
74
+
75
+
76
+ さて。話が前に戻りますけれど、
77
+ > mouseClickedで機能させるには
78
+ > <略>
79
+ > と理解しています。
80
+
81
+ う~ん、「理解」出来てますか? 理解できているのなら、クリック毎に変化の速度が変わるとか、三角形が赤->青->緑と色が変わるようにしてみる、とか出来ます?
82
+
83
+ プログラムが始まったら、適切に変数を配置し、必要なら初期化します。
84
+ このプログラムにおいて
85
+ > ①function setupの上でtrueかfalse指定
86
+
87
+ それも一つの方法ですが、例えば最初の変数をいくつか宣言しているところにclickedも加えて、setup関数の中で最初にそうであって欲しい値を設定してもかまいません。プログラム全体としての値を保持できるように宣言して、draw()の中で最初に値を参照するまでに適切な値が設定されていればOKです。
88
+
89
+ mouseClicked()は、(ちゃんと宣言すれば)とにかくマウスがクリックされたら呼び出されます。そこで、必要に応じて変数を変化させます。
90
+ > ③function mouseClickedで呼び出した後の処理if (clicked)のあとに書く
91
+
92
+ mouseClicedの中でif(clicked)としているのは、つまりマウスがクリックされたらclicked変数の値を反転させたいからです。それまでtrueだったらfalse,falseだったらtrueに変えたい...「たら」という言葉が出てきましたからif文の出番。
93
+ > ②ifで指定したものをfunction setupの中で呼びだして、{}の中にクリック後に行いたい処理(今回はy--等)
94
+
95
+ if文がなにかを「指定」することはありません。プログラムに「岐れ路」を提供するだけ。また、setup関数は全体の起動時に1度だけ呼び出されるものですから、あとの方にあるif文がsetupの動作に影響することはありません。
96
+
97
+ もうちょっと知識の整理が必要に思います。