質問編集履歴
3
タイトル変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
[SpriteKit]
|
1
|
+
[SpriteKit]オブジェクトプールのようなものを作る
|
test
CHANGED
File without changes
|
2
コメント追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,11 +8,11 @@
|
|
8
8
|
|
9
9
|
class MyView: SKView {
|
10
10
|
|
11
|
-
private var skScene: SKScene!
|
11
|
+
private var skScene: SKScene! // 各スプライトが描画されるシーン
|
12
|
-
|
13
|
-
private var mover: Mover!
|
14
12
|
|
15
13
|
...
|
14
|
+
|
15
|
+
// ここからはじまる
|
16
16
|
|
17
17
|
func initialize() {
|
18
18
|
|
@@ -26,7 +26,9 @@
|
|
26
26
|
|
27
27
|
pool = Pool(parentScene: skScene)
|
28
28
|
|
29
|
+
|
30
|
+
|
29
|
-
|
31
|
+
var mover: Mover! // プールに登録するオブジェクト
|
30
32
|
|
31
33
|
mover = pool.createMover()
|
32
34
|
|
@@ -72,6 +74,8 @@
|
|
72
74
|
|
73
75
|
|
74
76
|
|
77
|
+
// 新しいオブジェクトMoverをpool配列からを取得 or pool配列に生成
|
78
|
+
|
75
79
|
private func getNewMoverInstance() -> Mover? {
|
76
80
|
|
77
81
|
for var i=0; i<pool.count; i++ {
|
@@ -94,6 +98,8 @@
|
|
94
98
|
|
95
99
|
|
96
100
|
|
101
|
+
// オブジェクトMover作成と、nodeをシーン追加する
|
102
|
+
|
97
103
|
func createMover() -> Mover? {
|
98
104
|
|
99
105
|
let newInstance = getNewMoverInstance()
|
@@ -109,6 +115,8 @@
|
|
109
115
|
}
|
110
116
|
|
111
117
|
|
118
|
+
|
119
|
+
// 描画されるSKNodeと、描画先のSKSceneなどを備えたオブジェクトMoverの定義
|
112
120
|
|
113
121
|
class Mover {
|
114
122
|
|
@@ -128,6 +136,8 @@
|
|
128
136
|
|
129
137
|
...
|
130
138
|
|
139
|
+
// オブジェクトのnodeの設定
|
140
|
+
|
131
141
|
func setNode() {
|
132
142
|
|
133
143
|
self.node = SKShapeNode(ellipseOfSize: ...)
|
1
誤植:正しいクラス名に変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
class Pool : NSObject {
|
56
56
|
|
57
|
-
private var pool = [
|
57
|
+
private var pool = [Mover?]()
|
58
58
|
|
59
59
|
private let parentScene: SKScene
|
60
60
|
|