回答編集履歴

1

動作確認、修正結果を追記

2019/11/09 12:38

投稿

dodox86
dodox86

スコア9183

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
+ ```