質問編集履歴

10

タイトルの変更

2017/03/23 16:17

投稿

toshiFP
toshiFP

スコア22

test CHANGED
@@ -1 +1 @@
1
- [Swift3]コンソールにmemory issueエラーメッセージが出る
1
+ [Swift3/SpriteKit]コンソールにmemory issueエラーメッセージが出る
test CHANGED
File without changes

9

コードを追記しました。

2017/03/23 16:17

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -63,3 +63,143 @@
63
63
  根本的に何かが間違っているのでしょうか。
64
64
 
65
65
  ご教授いただければ大変助かります。よろしくお願いいたします。
66
+
67
+
68
+
69
+ ```Swift
70
+
71
+ import SpriteKit
72
+
73
+ import CoreMotion
74
+
75
+
76
+
77
+ class Stage1Scene: SKScene, SKPhysicsContactDelegate {
78
+
79
+
80
+
81
+ //衝突判定用のカテゴリー設定
82
+
83
+ struct ColliderType {
84
+
85
+ static let player_cat: UInt32 = ( 1 << 0)
86
+
87
+ static let pipe_cat: UInt32 = ( 1 << 1)
88
+
89
+ static let goal_cat: UInt32 = ( 1 << 2)
90
+
91
+ }
92
+
93
+
94
+
95
+ //motionManager生成
96
+
97
+ var motionManager: CMMotionManager!
98
+
99
+
100
+
101
+ //プレイヤー変数宣言
102
+
103
+ var player = SKSpriteNode(imageNamed: "metal")
104
+
105
+ var playerXposition: Double = 0
106
+
107
+ var playerYposition: Double = 0
108
+
109
+
110
+
111
+ //カメラノード宣言
112
+
113
+ var cameraNode: SKCameraNode!
114
+
115
+
116
+
117
+ //起動時処理
118
+
119
+ override func didMove(to view: SKView) {
120
+
121
+ self.physicsWorld.gravity = CGVector.zero
122
+
123
+ self.physicsBody = SKPhysicsBody(edgeLoopFrom: self.frame)
124
+
125
+ self.physicsWorld.contactDelegate = self
126
+
127
+
128
+
129
+ motionManager = CMMotionManager()
130
+
131
+ motionManager.accelerometerUpdateInterval = 0.1
132
+
133
+ motionManager.startAccelerometerUpdates(to: OperationQueue.main,withHandler: {(accelerometerData:CMAccelerometerData?, error:Error?) -> Void in
134
+
135
+
136
+
137
+
138
+
139
+ self.playerXposition = accelerometerData!.acceleration.y * 20
140
+
141
+ self.playerYposition = accelerometerData!.acceleration.x * -20
142
+
143
+ })
144
+
145
+
146
+
147
+ cameraNode = childNode(withName: "cameraNode") as? SKCameraNode
148
+
149
+ let zoomIn = SKAction.scale(to: 0.2, duration: 0)
150
+
151
+ cameraNode.run(zoomIn)
152
+
153
+ }
154
+
155
+
156
+
157
+ //タッチ開始時
158
+
159
+ override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
160
+
161
+ for touch: AnyObject in touches {
162
+
163
+ let location = touch.location(in: self)
164
+
165
+ let touchedNode = self.atPoint(location)
166
+
167
+
168
+
169
+ if (touchedNode == nextSprite) {
170
+
171
+
172
+
173
+ self.isPaused = false
174
+
175
+ label.text = ""
176
+
177
+
178
+
179
+ self.removeAllChildren()
180
+
181
+ //ステージ2へのシーンの推移
182
+
183
+ let scene = Stage2Scene(fileNamed: "Stage2Scene")
184
+
185
+ let transition = SKTransition.fade(with: UIColor.white, duration: 2.0)
186
+
187
+ scene?.scaleMode = SKSceneScaleMode.aspectFill
188
+
189
+ self.view?.presentScene(scene!, transition: transition)
190
+
191
+
192
+
193
+ //全てのスプライトを削除
194
+
195
+ self.removeAllChildren()
196
+
197
+ self.removeAllActions()
198
+
199
+
200
+
201
+ }
202
+
203
+
204
+
205
+ ```

8

追記を記入しました。原因が分かったのですが解決策が見当たりません。

2017/03/22 14:59

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -50,4 +50,16 @@
50
50
 
51
51
  (追記)
52
52
 
53
+ その後MemoryのモニタリングをしていたところSceneを描画するたびに
54
+
55
+ Memoryの数値が上がっていきステージ4を描画する頃には600MBを超えており
56
+
57
+ その拍子にアプリがクラッシュしてしまうようです。
58
+
53
- ステージ3らはじめるとステージ4へは問題なく推移できました
59
+ そこまでは分ったのすがどうすれば解決でるのかが分かりせん
60
+
61
+ コード内にremoveallchildrenを入れましたが変わらず。
62
+
63
+ 根本的に何かが間違っているのでしょうか。
64
+
65
+ ご教授いただければ大変助かります。よろしくお願いいたします。

7

追記を記入しました。ステージ3から始めるとステージ4へは問題なく推移できました。

2017/03/22 14:55

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -47,3 +47,7 @@
47
47
  しかしステージ1から進めていくとやはりステージ3から4の間でエラーが出ます。
48
48
 
49
49
  ちなみにremoveallchildrenをコード内に入れてません。
50
+
51
+ (追記)
52
+
53
+ ステージ3からはじめるとステージ4へは問題なく推移できました。

6

2017/03/17 15:15

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  ゲームを進めていきステージ1〜3までは問題なくシーンが推移表示されるのですが
22
22
 
23
- ステージ3から4へシーンを推移する時だけコンソールに下記のエラーメッセージが出ます。
23
+ ステージ3から4へシーンを推移する時だけコンソールに下記のエラーメッセージが出てアプリがクラッシュしてしいます。
24
24
 
25
25
 
26
26
 

5

2017/03/15 18:32

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -46,4 +46,4 @@
46
46
 
47
47
  しかしステージ1から進めていくとやはりステージ3から4の間でエラーが出ます。
48
48
 
49
- ちなみにremoveallchildrenをコード内に入れてません。別のシーンに推移した時に推移前のシーンのノードは全て削除されないのでしょうか。
49
+ ちなみにremoveallchildrenをコード内に入れてません。

4

2017/03/15 18:31

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -46,4 +46,4 @@
46
46
 
47
47
  しかしステージ1から進めていくとやはりステージ3から4の間でエラーが出ます。
48
48
 
49
- ちなみにremoveallchildrenをコードに入れてません。別のシーンに推移した時に推移前のシーンのノードは全て削除されないのでしょうか。
49
+ ちなみにremoveallchildrenをコードに入れてません。別のシーンに推移した時に推移前のシーンのノードは全て削除されないのでしょうか。

3

2017/03/15 18:30

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -46,4 +46,4 @@
46
46
 
47
47
  しかしステージ1から進めていくとやはりステージ3から4の間でエラーが出ます。
48
48
 
49
- ちなみにremoveallchildrenをコードに入れてません。別のシーンに推移した時に推移前のシーンのノードは全て削除されないのでしょうか。
49
+ ちなみにremoveallchildrenをコードに入れてません。別のシーンに推移した時に推移前のシーンのノードは全て削除されないのでしょうか。

2

2017/03/15 18:29

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -46,4 +46,4 @@
46
46
 
47
47
  しかしステージ1から進めていくとやはりステージ3から4の間でエラーが出ます。
48
48
 
49
- ちなみにremoveallchildrenをコードに入れてないのですが別のシーンに推移した時に推移前のシーンのノードは全ての削除されないのでしょうか。
49
+ ちなみにremoveallchildrenをコードに入れてません。別のシーンに推移した時に推移前のシーンのノードは全ての削除されないのでしょうか。

1

2017/03/15 18:29

投稿

toshiFP
toshiFP

スコア22

test CHANGED
File without changes
test CHANGED
@@ -45,3 +45,5 @@
45
45
  ステージ1からではなくステージ4からにすると問題なく表示されました。
46
46
 
47
47
  しかしステージ1から進めていくとやはりステージ3から4の間でエラーが出ます。
48
+
49
+ ちなみにremoveallchildrenをコードに入れてないのですが別のシーンに推移した時に推移前のシーンのノードは全ての削除されないのでしょうか。