回答編集履歴
1
動作確認、修正結果を追記
test
CHANGED
@@ -17,3 +17,63 @@
|
|
17
17
|
|
18
18
|
|
19
19
|
`int`型にキャストしたらどうでしょうか。```if (int(frameCount / (frameRate * 0.5)) % 2 == 0)```
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
---
|
24
|
+
|
25
|
+
**追記しました:2019-11-09 21:37**
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
動作を確認させていただきました。ご提示のコードをよくよく拝見すると、0.5秒ごとに点滅する意図であるものの、その前に`Thread.sleep(1000);`とのように1000ミリ秒スリープしているので、点滅間隔は常に1秒になってしまいます。まず、ここを100ミリ秒にします。更に、先の私の回答で`if (int(frameCount / (frameRate * 0.5)) % 2 == 0)`と`int`型にキャストする部分を`if (int(frameCount / (frameRate * 0.5) % 2) == 0) `と修正し、最終的に`SubThread`クラスの`run`メソッドを以下のようにしたところ、500ミリ秒ごとに緑・黒・緑・黒・・・と点滅するようになりました。
|
30
|
+
|
31
|
+
```Processing
|
32
|
+
|
33
|
+
public void run() {
|
34
|
+
|
35
|
+
while (running) {
|
36
|
+
|
37
|
+
try {
|
38
|
+
|
39
|
+
//G = 255;
|
40
|
+
|
41
|
+
//G = 0;
|
42
|
+
|
43
|
+
println("I am Sleeping...");
|
44
|
+
|
45
|
+
// 100ミリ秒待機
|
46
|
+
|
47
|
+
Thread.sleep(100);
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
catch( InterruptedException ex) {
|
52
|
+
|
53
|
+
ex.printStackTrace();
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
// 点滅間隔|0.5[sec]
|
58
|
+
|
59
|
+
// if (frameCount / (frameRate * 0.5) % 2 ==0) {
|
60
|
+
|
61
|
+
if (int(frameCount / (frameRate * 0.5) % 2) == 0) {
|
62
|
+
|
63
|
+
G = 255;
|
64
|
+
|
65
|
+
} else {
|
66
|
+
|
67
|
+
G = 0;
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
println("Sub Thread exit");
|
76
|
+
|
77
|
+
}
|
78
|
+
|
79
|
+
```
|