回答編集履歴
3
見直しキャンペーン中
test
CHANGED
@@ -1,83 +1,42 @@
|
|
1
1
|
> その中で、ライブラリを初期化する処理が必要なのですが、その理由がわからずひっかかっています
|
2
|
-
|
3
|
-
|
4
2
|
|
5
3
|
そのためにはProcessingの仕組みを知る必要があります。
|
6
4
|
|
7
|
-
|
8
|
-
|
9
5
|
Processingのコードを書く場合、通常ひとつあるいは数個のタブ(`.pde`)を書きますね?
|
10
|
-
|
11
6
|
これは最終的には(スケッチ名)クラスにまとめられます(`.java`のタブに書いたクラスは別)
|
12
7
|
|
13
|
-
|
14
|
-
|
15
8
|
```Java
|
16
|
-
|
17
9
|
class スケッチ名 extends PApplet {
|
18
|
-
|
19
10
|
// すべての .pde は、ココの中に書いていることになる
|
20
|
-
|
21
11
|
}
|
22
|
-
|
23
12
|
```
|
24
13
|
|
25
|
-
|
26
|
-
|
27
14
|
そのためスケッチ名と同名のクラスを作ると怒られます。
|
28
|
-
|
15
|
+
```
|
16
|
+
The class "スケッチ名" cannot have the same name as your sketch or its enclosing class
|
29
17
|
```
|
30
18
|
|
31
|
-
|
19
|
+
(一見グローバル変数のように見える)自分で定義した変数や`println()`等の組み込み関数は、実はクラスのフィールドとメソッドだったのです。
|
32
20
|
|
33
|
-
```
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
(一見グローバル変数のように見える)自分で定義した変数や`println()`等の関数は、実はクラスのフィールドとメソッドだったのです。
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
`.java`のタブに書いたクラスやライブラリのクラスは、`PApplet`とは無関係のためそのままでは関数が軒並み使えません。
|
21
|
+
`.java`のタブに書いたクラスやライブラリのクラスは、`PApplet`とは無関係のためそのままでは組み込み関数が軒並み使えません。
|
42
|
-
|
43
|
-
そのため初回に`this`(`PApplet`)を渡してもらい、それ経由で関数を呼び出せるような作りになっているライブラリが多いです。
|
22
|
+
そのため初回に`this`(`PApplet`)を渡してもらい、それ経由で組み込み関数を呼び出せるような作りになっているライブラリが多いです。
|
44
|
-
|
45
23
|
あとは本当に何か初期化処理が必要な場合もあるでしょう。
|
46
|
-
|
47
|
-
|
48
24
|
|
49
25
|
> なぜ、ライブラリをインポートした際に、初期化が必要なのでしょうか?
|
50
26
|
|
27
|
+
インポートとは直接関係ありません(詳しくは「[java import](https://www.google.co.jp/search?q=java+import)」でggってください)
|
51
28
|
|
52
|
-
|
53
|
-
インポートとは直接関係ありません(詳しくは「java import」でggってください)
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
例えばProcessingに用意されていないより高度な数学の関数を提供するライブラリ(そういうのがあるのかは知りませんが)とか、`PApplet`が必要ないライブラリであれば初期化処理はいらないはずです。
|
29
|
+
例えばProcessingに用意されていないより高度な数学の関数を提供するライブラリ(そういうのがあるのかは知りませんが)とか、組み込み関数を使わない(`PApplet`が必要ない)ライブラリであれば初期化処理はいらないはずです。
|
58
|
-
|
59
|
-
|
60
30
|
|
61
31
|
> ライブラリはインポートされたタイミングによって初期化しないと何かが変わってしまう可能性があるのでしょうか?
|
62
32
|
|
63
|
-
|
64
|
-
|
65
33
|
`fisica`の場合は`Fisica.init(this)`しないと、`Fisica$LibraryNotInitializedException`が出ます。
|
66
|
-
|
67
34
|
そもそも動かなくなってしまいます。
|
68
|
-
|
69
|
-
|
70
35
|
|
71
36
|
---
|
72
37
|
|
73
|
-
|
74
|
-
|
75
38
|
よほど高度なことをしたいと思わない限り`PApplet`が出てくることはまずないのですが、もっと詳しく知りたくなったらソースコードを眺めてみるといいです^^
|
76
|
-
|
77
|
-
|
78
39
|
|
79
40
|
[fisica/Fisica.java at master · rikrd/fisica](https://github.com/rikrd/fisica/blob/master/src/fisica/Fisica.java)
|
80
41
|
|
81
|
-
|
82
|
-
|
83
42
|
[processing4/PApplet.java at master · processing/processing4](https://github.com/processing/processing4/blob/master/core/src/processing/core/PApplet.java)
|
2
編集が反映されない
test
CHANGED
@@ -78,4 +78,6 @@
|
|
78
78
|
|
79
79
|
[fisica/Fisica.java at master · rikrd/fisica](https://github.com/rikrd/fisica/blob/master/src/fisica/Fisica.java)
|
80
80
|
|
81
|
+
|
82
|
+
|
81
83
|
[processing4/PApplet.java at master · processing/processing4](https://github.com/processing/processing4/blob/master/core/src/processing/core/PApplet.java)
|
1
Fisica.java
test
CHANGED
@@ -76,6 +76,6 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
-
[rikrd/fisica](https://github.com/rikrd/fisica)
|
79
|
+
[fisica/Fisica.java at master · rikrd/fisica](https://github.com/rikrd/fisica/blob/master/src/fisica/Fisica.java)
|
80
80
|
|
81
81
|
[processing4/PApplet.java at master · processing/processing4](https://github.com/processing/processing4/blob/master/core/src/processing/core/PApplet.java)
|