初心者のSWIFTアプリ開発記 ©たぬきち

肥満気味になってきたので筋トレに励んでいます! プログラミング頑張ります

メモリリーク!?動作が重くなる!?・・・swiftアプリ開発

シューティングゲーム??開発

これまではゲームシーンのみに取り組んでいましたが、ようやく初期タイトル画面などに取り掛かりました( ^ω^ )

 

これでようやく全体的なイメージが浮かんでくるので、ちょっとだけやる気がでるというものです

f:id:egoisticYK:20150727104950p:plain

だが!!!!!!

これまでになんども苦しまされてきた、メモリリークの壁が立ちはだかるのである・・・

今回で3作ということでviewController間の移動はスムージー・・・
スムーズにいかない。
 

今回で3作目なのだけれども、viewController間での移動はスムージー・・・

スムーズにいかない。

以前と違ってゲームオーバーシーンの表示に別クラスを使用しているのですが その違いが仇となりました。

class TouchScene: SKScene {
    
    override func didMoveToView(view: SKView) {
        
        self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
        
        var button = SKSpriteNode(imageNamed: "button")
        button.position = CGPoint(x: 0, y: 0)
        button.zPosition = 140
        button.name = "button"
        self.addChild(button)

       
        
    }
    
    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        
        
        for touch: AnyObject in touches{
            let location = touch.locationInNode(self)
            let touchNode = self.nodeAtPoint(location)
            if touchNode.name == "button"{
                let transition = SKTransition.flipVerticalWithDuration(1.0)
                let scene = GameScene()
                scene.scaleMode = .AspectFill
                scene.size = self.size
                self.view?.presentScene(scene,transition: transition)
            }
            
        }
    }
}

このクラスを👇
 

 func createImageScene(imageName: String) -> SKScene{
        let scene = TouchScene(size: self.size)
        let sprite = SKSpriteNode(imageNamed: imageName)
        sprite.size = scene.size
        sprite.position = CGPoint(x: 0, y: 0)
        scene.addChild(sprite)
        return scene
    }

こんな感じで使ってゲームオーバーの表示をしています(ほとんど参考書通り)

 
 
これでTouchSceneクラスにもう一個画像を追加してタッチしたら、タイトル画面に移行するようにしたかったのですが、
delegateで設定しても、エラーは出ないけどメソッドが呼ばれなかったり
segueを設定してもなんの反応もなかったのです。。。
 
 
まぁやり方はいろいろあるのでしょうけど、このままだとまったく進まない不幸な事態に突入するので
ストーリーボードでボタンを置いて、普段は隠しておいてゲームオーバーで表示させるようにしました。

もっとスマートにコードのみでやりたかったんだけどな´д` ;

 
 
 

重くなる?

とりあえずそんな感じで重くならないかテスト!
マックのシュミレーターで、タイトル→ゲーム→タイトル→ゲーム・・・ と繰り返すと、5回に1回くらい重くなる!
 
なんなのこれは?´д` ; アプリ作るたびに動作が重くなる現象が起こるので、今回も少しトラウマ・・・
でも基本的にはちゃんと動くんだよな・・・ネットで調べても5回に1回重くなるとかピンポイントでは出てこないし

weak とか unwindowsegue とかわからないなりに使って今の状態なので、これ以上はどう対策したらわからんのですねぇ f:id:egoisticYK:20150904193724p:plain

 
 
とりあえず実機でも試したら、こちらは意外と正常に動く・・・
もしかしてそういう仕様だったとかかえ!?

でもすでに公開しているアプリもちゃんと動いていた気がしたんだけどな、、、公開してみたら重くてダメだったしo(`ω´ )o

まぁとりあえずこの問題は放置して、他の部分に着手しよ( ^ω^ )
 
f:id:egoisticYK:20150905231048p:plain