回答編集履歴

3

2022/09/18 18:19

投稿

TN8001
TN8001

スコア9855

test CHANGED
@@ -1,201 +1,101 @@
1
1
  課題ということなのでヒントにとどめます。
2
-
3
2
  ヒントが足りなければ追記しますので、コメントしてください。
4
-
5
-
6
3
 
7
4
  > pngのRGBはイラレでしっかり指定して作ってあります。
8
5
 
9
-
10
-
11
- 添付画像が`pic.png`でればどう見ても`color(255,0,0)`や`color(0,0,255)`はありません。
6
+ 添付画像が`pic.png`でればどう見ても`color(255,0,0)`や`color(0,0,255)`はありません。
12
-
13
-
14
7
 
15
8
  ```Processing
16
-
17
9
  println(hex(get(mouseX, mouseY), 6));
18
-
19
10
  ```
20
-
21
11
  とすると16進でff0000のように表示して確認できます。
22
-
23
12
  `color(255,0,0)`の代わりに`#ff0000`のような表記もできるので、if文を画像の色に合わせましょう。
24
-
25
13
  [hex() \ Language (API) \ Processing 3+](https://processing.org/reference/hex_.html)
26
-
27
14
  [color \ Language (API) \ Processing 3+](https://processing.org/reference/color_datatype.html)
28
-
29
-
30
-
31
15
 
32
16
 
33
17
  > 下手に書き換えられず宣言している変数で使っていない変数もあります。
34
18
 
35
-
36
-
37
19
  (イライラ棒の跡形もないので)もうすでにかなり書き換えてると思うのですが、このコード量なら変数を使っているかどうかは一目では?
38
20
 
39
-
40
-
41
21
  例えば`final int STANDBY = 0;`を削除します。
42
-
43
22
  もしどこかで使われている変数なら、実行ボタンを押したときにエラーになります。
44
-
45
23
  エラーになったら元に戻せばいいだけです。
46
-
47
-
48
-
49
24
 
50
25
 
51
26
  > こうした方がスッキリするなどのご意見も欲しいです。
52
27
 
53
-
54
-
55
28
  それ以前にやりたいことにコードがなっていません。
56
-
57
29
  ```Processing
58
-
59
30
  startTime = millis();
60
-
61
31
  finishTime= millis()-startTime;
62
-
63
32
  ```
64
-
65
33
  これはどういうつもりで書いたのでしょう?
66
-
67
34
  スタートするのは赤ボタンを押したときですよね?
68
-
69
35
  `setup()`(プログラム開始)時の値をとっても仕方ありません。
70
-
71
36
  `finishTime`も`millis()-millis()`になるわけですから結局0です。
72
-
73
-
74
37
 
75
38
  ---
76
39
 
77
-
78
-
79
40
  ```Processing
80
-
81
41
  text((millis()-startTime)*0.001,256,260);
82
-
83
42
  ```
84
-
85
43
  ここの意図もわかりません。赤を押したときに何か表示するんですか?
86
-
87
-
88
44
 
89
45
  ---
90
46
 
91
-
92
-
93
47
  ```Processing
94
-
95
48
  text(finishTime*0.001,256,260);
96
-
97
49
  ```
98
-
99
50
  ここの気持ちはわかります。
100
-
101
51
  しかし`finishTime`は0です。青ボタンを押したとき(if文の中)に、`finishTime`を計算する必要があります。
102
52
 
103
-
104
-
105
53
  あと2点
106
-
107
54
  文字色は今のままでは白です。
108
-
109
55
  [text() \ Language (API) \ Processing 3+](https://processing.org/reference/text_.html)
110
-
111
56
  [fill() \ Language (API) \ Processing 3+](https://processing.org/reference/fill_.html)
112
57
 
113
-
114
-
115
58
  `mousePressed()`で文字を書きますが、すぐ`draw()`に入ってしまい画像で上書きされて消えてしまいます。
116
-
117
59
  簡単にやるならループを止めることです。
118
-
119
60
  [noLoop() \ Language (API) \ Processing 3+](https://processing.org/reference/noLoop_.html)
120
-
121
-
122
61
 
123
62
  ---
124
63
 
125
-
126
-
127
64
  全体コードを追記
128
65
 
129
-
130
-
131
66
  `_`になっている部分を埋めてください。
132
-
133
67
  ```Processing
134
-
135
68
  int startTime;
136
-
137
69
  PImage pic;
138
70
 
139
-
140
-
141
71
  void setup() {
142
-
143
72
  size(512, 512);
144
-
145
73
  pic = loadImage("pic.png");
146
-
147
74
  textSize(50);
148
-
149
75
  fill(0); // 塗りつぶし色(文字色)黒
150
-
151
76
  }
152
77
 
153
-
154
-
155
78
  void draw() {
156
-
157
79
  image(pic, 0, 0);
158
-
159
80
  }
160
81
 
161
-
162
-
163
82
  void mousePressed() {
164
-
165
83
  println(hex(get(mouseX, mouseY), 6)); // 717272 や FFFFFF 等
166
84
 
167
-
168
-
169
85
  if (get(mouseX, mouseY) == #______) { // 赤ボタンを押したとき #FF0000 等確認した色を入れる
170
-
171
86
  startTime = millis(); // startTimeを記録
172
-
173
87
  loop(); // 再チャレンジ時のためにループを再開
174
-
175
88
  }
176
89
 
177
-
178
-
179
90
  if (get(mouseX, mouseY) == #______) { // 青ボタンを押したとき #0000FF 等確認した色を入れる
180
-
181
91
 
182
-
183
92
  // 先に赤ボタンを押してなければ青ボタンは押せない(赤を押したときに変えた変数は?)
184
-
185
93
  if(_________ == 0) return;
186
94
 
187
-
188
-
189
95
  // finishTimeの計算(finishTimeはここでしか使わないのでローカル変数でよい)
190
-
191
96
  int finishTime = millis() - startTime;
192
-
193
97
  text(finishTime * 0.001, 256, 260); // 位置が全然合ってない
194
-
195
98
  noLoop(); // ループを止める
196
-
197
99
  }
198
-
199
100
  }
200
-
201
101
  ```

2

インデント・スペース

2021/02/02 16:05

投稿

TN8001
TN8001

スコア9855

test CHANGED
@@ -168,12 +168,14 @@
168
168
 
169
169
  if (get(mouseX, mouseY) == #______) { // 赤ボタンを押したとき #FF0000 等確認した色を入れる
170
170
 
171
- startTime = millis(); // startTimeを記録
171
+ startTime = millis(); // startTimeを記録
172
172
 
173
173
  loop(); // 再チャレンジ時のためにループを再開
174
174
 
175
175
  }
176
176
 
177
+
178
+
177
179
  if (get(mouseX, mouseY) == #______) { // 青ボタンを押したとき #0000FF 等確認した色を入れる
178
180
 
179
181
 
@@ -182,11 +184,11 @@
182
184
 
183
185
  if(_________ == 0) return;
184
186
 
185
-
187
+
186
188
 
187
189
  // finishTimeの計算(finishTimeはここでしか使わないのでローカル変数でよい)
188
190
 
189
- int finishTime = millis() - startTime;
191
+ int finishTime = millis() - startTime;
190
192
 
191
193
  text(finishTime * 0.001, 256, 260); // 位置が全然合ってない
192
194
 

1

全体コードを追記

2021/02/02 16:05

投稿

TN8001
TN8001

スコア9855

test CHANGED
@@ -117,3 +117,83 @@
117
117
  簡単にやるならループを止めることです。
118
118
 
119
119
  [noLoop() \ Language (API) \ Processing 3+](https://processing.org/reference/noLoop_.html)
120
+
121
+
122
+
123
+ ---
124
+
125
+
126
+
127
+ 全体コードを追記
128
+
129
+
130
+
131
+ `_`になっている部分を埋めてください。
132
+
133
+ ```Processing
134
+
135
+ int startTime;
136
+
137
+ PImage pic;
138
+
139
+
140
+
141
+ void setup() {
142
+
143
+ size(512, 512);
144
+
145
+ pic = loadImage("pic.png");
146
+
147
+ textSize(50);
148
+
149
+ fill(0); // 塗りつぶし色(文字色)黒
150
+
151
+ }
152
+
153
+
154
+
155
+ void draw() {
156
+
157
+ image(pic, 0, 0);
158
+
159
+ }
160
+
161
+
162
+
163
+ void mousePressed() {
164
+
165
+ println(hex(get(mouseX, mouseY), 6)); // 717272 や FFFFFF 等
166
+
167
+
168
+
169
+ if (get(mouseX, mouseY) == #______) { // 赤ボタンを押したとき #FF0000 等確認した色を入れる
170
+
171
+ startTime = millis(); // startTimeを記録
172
+
173
+ loop(); // 再チャレンジ時のためにループを再開
174
+
175
+ }
176
+
177
+ if (get(mouseX, mouseY) == #______) { // 青ボタンを押したとき #0000FF 等確認した色を入れる
178
+
179
+
180
+
181
+ // 先に赤ボタンを押してなければ青ボタンは押せない(赤を押したときに変えた変数は?)
182
+
183
+ if(_________ == 0) return;
184
+
185
+
186
+
187
+ // finishTimeの計算(finishTimeはここでしか使わないのでローカル変数でよい)
188
+
189
+ int finishTime = millis() - startTime;
190
+
191
+ text(finishTime * 0.001, 256, 260); // 位置が全然合ってない
192
+
193
+ noLoop(); // ループを止める
194
+
195
+ }
196
+
197
+ }
198
+
199
+ ```