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

回答編集履歴

3

2022/09/18 18:19

投稿

TN8001
TN8001

スコア10112

answer CHANGED
@@ -1,101 +1,101 @@
1
- 課題ということなのでヒントにとどめます。
2
- ヒントが足りなければ追記しますので、コメントしてください。
3
-
4
- > pngのRGBはイラレでしっかり指定して作ってあります。
5
-
6
- 添付画像が`pic.png`でればどう見ても`color(255,0,0)`や`color(0,0,255)`はありません。
7
-
8
- ```Processing
9
- println(hex(get(mouseX, mouseY), 6));
10
- ```
11
- とすると16進でff0000のように表示して確認できます。
12
- `color(255,0,0)`の代わりに`#ff0000`のような表記もできるので、if文を画像の色に合わせましょう。
13
- [hex() \ Language (API) \ Processing 3+](https://processing.org/reference/hex_.html)
14
- [color \ Language (API) \ Processing 3+](https://processing.org/reference/color_datatype.html)
15
-
16
-
17
- > 下手に書き換えられず宣言している変数で使っていない変数もあります。
18
-
19
- (イライラ棒の跡形もないので)もうすでにかなり書き換えてると思うのですが、このコード量なら変数を使っているかどうかは一目では?
20
-
21
- 例えば`final int STANDBY = 0;`を削除します。
22
- もしどこかで使われている変数なら、実行ボタンを押したときにエラーになります。
23
- エラーになったら元に戻せばいいだけです。
24
-
25
-
26
- > こうした方がスッキリするなどのご意見も欲しいです。
27
-
28
- それ以前にやりたいことにコードがなっていません。
29
- ```Processing
30
- startTime = millis();
31
- finishTime= millis()-startTime;
32
- ```
33
- これはどういうつもりで書いたのでしょう?
34
- スタートするのは赤ボタンを押したときですよね?
35
- `setup()`(プログラム開始)時の値をとっても仕方ありません。
36
- `finishTime`も`millis()-millis()`になるわけですから結局0です。
37
-
38
- ---
39
-
40
- ```Processing
41
- text((millis()-startTime)*0.001,256,260);
42
- ```
43
- ここの意図もわかりません。赤を押したときに何か表示するんですか?
44
-
45
- ---
46
-
47
- ```Processing
48
- text(finishTime*0.001,256,260);
49
- ```
50
- ここの気持ちはわかります。
51
- しかし`finishTime`は0です。青ボタンを押したとき(if文の中)に、`finishTime`を計算する必要があります。
52
-
53
- あと2点
54
- 文字色は今のままでは白です。
55
- [text() \ Language (API) \ Processing 3+](https://processing.org/reference/text_.html)
56
- [fill() \ Language (API) \ Processing 3+](https://processing.org/reference/fill_.html)
57
-
58
- `mousePressed()`で文字を書きますが、すぐ`draw()`に入ってしまい画像で上書きされて消えてしまいます。
59
- 簡単にやるならループを止めることです。
60
- [noLoop() \ Language (API) \ Processing 3+](https://processing.org/reference/noLoop_.html)
61
-
62
- ---
63
-
64
- 全体コードを追記
65
-
66
- `_`になっている部分を埋めてください。
67
- ```Processing
68
- int startTime;
69
- PImage pic;
70
-
71
- void setup() {
72
- size(512, 512);
73
- pic = loadImage("pic.png");
74
- textSize(50);
75
- fill(0); // 塗りつぶし色(文字色)黒
76
- }
77
-
78
- void draw() {
79
- image(pic, 0, 0);
80
- }
81
-
82
- void mousePressed() {
83
- println(hex(get(mouseX, mouseY), 6)); // 717272 や FFFFFF 等
84
-
85
- if (get(mouseX, mouseY) == #______) { // 赤ボタンを押したとき #FF0000 等確認した色を入れる
86
- startTime = millis(); // startTimeを記録
87
- loop(); // 再チャレンジ時のためにループを再開
88
- }
89
-
90
- if (get(mouseX, mouseY) == #______) { // 青ボタンを押したとき #0000FF 等確認した色を入れる
91
-
92
- // 先に赤ボタンを押してなければ青ボタンは押せない(赤を押したときに変えた変数は?)
93
- if(_________ == 0) return;
94
-
95
- // finishTimeの計算(finishTimeはここでしか使わないのでローカル変数でよい)
96
- int finishTime = millis() - startTime;
97
- text(finishTime * 0.001, 256, 260); // 位置が全然合ってない
98
- noLoop(); // ループを止める
99
- }
100
- }
1
+ 課題ということなのでヒントにとどめます。
2
+ ヒントが足りなければ追記しますので、コメントしてください。
3
+
4
+ > pngのRGBはイラレでしっかり指定して作ってあります。
5
+
6
+ 添付画像が`pic.png`でればどう見ても`color(255,0,0)`や`color(0,0,255)`はありません。
7
+
8
+ ```Processing
9
+ println(hex(get(mouseX, mouseY), 6));
10
+ ```
11
+ とすると16進でff0000のように表示して確認できます。
12
+ `color(255,0,0)`の代わりに`#ff0000`のような表記もできるので、if文を画像の色に合わせましょう。
13
+ [hex() \ Language (API) \ Processing 3+](https://processing.org/reference/hex_.html)
14
+ [color \ Language (API) \ Processing 3+](https://processing.org/reference/color_datatype.html)
15
+
16
+
17
+ > 下手に書き換えられず宣言している変数で使っていない変数もあります。
18
+
19
+ (イライラ棒の跡形もないので)もうすでにかなり書き換えてると思うのですが、このコード量なら変数を使っているかどうかは一目では?
20
+
21
+ 例えば`final int STANDBY = 0;`を削除します。
22
+ もしどこかで使われている変数なら、実行ボタンを押したときにエラーになります。
23
+ エラーになったら元に戻せばいいだけです。
24
+
25
+
26
+ > こうした方がスッキリするなどのご意見も欲しいです。
27
+
28
+ それ以前にやりたいことにコードがなっていません。
29
+ ```Processing
30
+ startTime = millis();
31
+ finishTime= millis()-startTime;
32
+ ```
33
+ これはどういうつもりで書いたのでしょう?
34
+ スタートするのは赤ボタンを押したときですよね?
35
+ `setup()`(プログラム開始)時の値をとっても仕方ありません。
36
+ `finishTime`も`millis()-millis()`になるわけですから結局0です。
37
+
38
+ ---
39
+
40
+ ```Processing
41
+ text((millis()-startTime)*0.001,256,260);
42
+ ```
43
+ ここの意図もわかりません。赤を押したときに何か表示するんですか?
44
+
45
+ ---
46
+
47
+ ```Processing
48
+ text(finishTime*0.001,256,260);
49
+ ```
50
+ ここの気持ちはわかります。
51
+ しかし`finishTime`は0です。青ボタンを押したとき(if文の中)に、`finishTime`を計算する必要があります。
52
+
53
+ あと2点
54
+ 文字色は今のままでは白です。
55
+ [text() \ Language (API) \ Processing 3+](https://processing.org/reference/text_.html)
56
+ [fill() \ Language (API) \ Processing 3+](https://processing.org/reference/fill_.html)
57
+
58
+ `mousePressed()`で文字を書きますが、すぐ`draw()`に入ってしまい画像で上書きされて消えてしまいます。
59
+ 簡単にやるならループを止めることです。
60
+ [noLoop() \ Language (API) \ Processing 3+](https://processing.org/reference/noLoop_.html)
61
+
62
+ ---
63
+
64
+ 全体コードを追記
65
+
66
+ `_`になっている部分を埋めてください。
67
+ ```Processing
68
+ int startTime;
69
+ PImage pic;
70
+
71
+ void setup() {
72
+ size(512, 512);
73
+ pic = loadImage("pic.png");
74
+ textSize(50);
75
+ fill(0); // 塗りつぶし色(文字色)黒
76
+ }
77
+
78
+ void draw() {
79
+ image(pic, 0, 0);
80
+ }
81
+
82
+ void mousePressed() {
83
+ println(hex(get(mouseX, mouseY), 6)); // 717272 や FFFFFF 等
84
+
85
+ if (get(mouseX, mouseY) == #______) { // 赤ボタンを押したとき #FF0000 等確認した色を入れる
86
+ startTime = millis(); // startTimeを記録
87
+ loop(); // 再チャレンジ時のためにループを再開
88
+ }
89
+
90
+ if (get(mouseX, mouseY) == #______) { // 青ボタンを押したとき #0000FF 等確認した色を入れる
91
+
92
+ // 先に赤ボタンを押してなければ青ボタンは押せない(赤を押したときに変えた変数は?)
93
+ if(_________ == 0) return;
94
+
95
+ // finishTimeの計算(finishTimeはここでしか使わないのでローカル変数でよい)
96
+ int finishTime = millis() - startTime;
97
+ text(finishTime * 0.001, 256, 260); // 位置が全然合ってない
98
+ noLoop(); // ループを止める
99
+ }
100
+ }
101
101
  ```

2

インデント・スペース

2021/02/02 16:05

投稿

TN8001
TN8001

スコア10112

answer CHANGED
@@ -83,16 +83,17 @@
83
83
  println(hex(get(mouseX, mouseY), 6)); // 717272 や FFFFFF 等
84
84
 
85
85
  if (get(mouseX, mouseY) == #______) { // 赤ボタンを押したとき #FF0000 等確認した色を入れる
86
- startTime = millis(); // startTimeを記録
86
+ startTime = millis(); // startTimeを記録
87
87
  loop(); // 再チャレンジ時のためにループを再開
88
88
  }
89
+
89
90
  if (get(mouseX, mouseY) == #______) { // 青ボタンを押したとき #0000FF 等確認した色を入れる
90
91
 
91
92
  // 先に赤ボタンを押してなければ青ボタンは押せない(赤を押したときに変えた変数は?)
92
93
  if(_________ == 0) return;
93
-
94
+
94
95
  // finishTimeの計算(finishTimeはここでしか使わないのでローカル変数でよい)
95
- int finishTime = millis() - startTime;
96
+ int finishTime = millis() - startTime;
96
97
  text(finishTime * 0.001, 256, 260); // 位置が全然合ってない
97
98
  noLoop(); // ループを止める
98
99
  }

1

全体コードを追記

2021/02/02 16:05

投稿

TN8001
TN8001

スコア10112

answer CHANGED
@@ -57,4 +57,44 @@
57
57
 
58
58
  `mousePressed()`で文字を書きますが、すぐ`draw()`に入ってしまい画像で上書きされて消えてしまいます。
59
59
  簡単にやるならループを止めることです。
60
- [noLoop() \ Language (API) \ Processing 3+](https://processing.org/reference/noLoop_.html)
60
+ [noLoop() \ Language (API) \ Processing 3+](https://processing.org/reference/noLoop_.html)
61
+
62
+ ---
63
+
64
+ 全体コードを追記
65
+
66
+ `_`になっている部分を埋めてください。
67
+ ```Processing
68
+ int startTime;
69
+ PImage pic;
70
+
71
+ void setup() {
72
+ size(512, 512);
73
+ pic = loadImage("pic.png");
74
+ textSize(50);
75
+ fill(0); // 塗りつぶし色(文字色)黒
76
+ }
77
+
78
+ void draw() {
79
+ image(pic, 0, 0);
80
+ }
81
+
82
+ void mousePressed() {
83
+ println(hex(get(mouseX, mouseY), 6)); // 717272 や FFFFFF 等
84
+
85
+ if (get(mouseX, mouseY) == #______) { // 赤ボタンを押したとき #FF0000 等確認した色を入れる
86
+ startTime = millis(); // startTimeを記録
87
+ loop(); // 再チャレンジ時のためにループを再開
88
+ }
89
+ if (get(mouseX, mouseY) == #______) { // 青ボタンを押したとき #0000FF 等確認した色を入れる
90
+
91
+ // 先に赤ボタンを押してなければ青ボタンは押せない(赤を押したときに変えた変数は?)
92
+ if(_________ == 0) return;
93
+
94
+ // finishTimeの計算(finishTimeはここでしか使わないのでローカル変数でよい)
95
+ int finishTime = millis() - startTime;
96
+ text(finishTime * 0.001, 256, 260); // 位置が全然合ってない
97
+ noLoop(); // ループを止める
98
+ }
99
+ }
100
+ ```