とりあえずブログ

プログラミングとiPhoneアプリの作り方を勉強中です。

今日やったこと(H27.12.23)

今日、もう1冊の本も届きました。

f:id:onetoonewao:20151224050017j:plain

SpriteKitの本は少ないらしく、貴重な1冊。
結構本格的なゲームを作っていくようです。
少しでも情報は欲しいので、こちらも読んでいきたいです。


<アプリ制作>

SpriteKitに慣れるために、全く同じものを再度作ってみることにしました。
スラスラ書けるまで繰り返し書いていこうと思います。

が...
昨日のコードに手を加えようとしたところ、??な現象が(?_?)

カウントアップに伴い画像が変わるようにしようとしたのですが、さてどう書いたものか。
SKTextureを使うのかなとやってみたのですが...

import SpriteKit

class GameScene: SKScene {
    
    var star = SKSpriteNode(imageNamed: "")
    var count = 0
    
    override func didMoveToView(view: SKView) {
        
        //背景色を設定
        self.backgroundColor = UIColor.blackColor()
        
        //星のオブジェクトを作成
        star.texture = SKTexture(imageNamed: "star1.png")
        star.position = CGPoint(x:self.size.width/2, y:self.size.height/2)
        self.addChild(star)
        
        //星を回転させる
        let action1 = SKAction.rotateByAngle(CGFloat(M_PI * 2), duration: 3.0)
        let action2 = SKAction.repeatActionForever(action1)
        star.runAction(action2)
    }
    
    //タッチで呼ばれる
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
       
        for touch in touches {
            
            //タッチされた座標を取得
            let location = touch.locationInNode(self)
            
            //タッチされた座標が、星のviewと重なったら
            if star.containsPoint(location){
                
                //カウントアップ
                count++
                
                star.removeFromParent()
                
                //カウント数と連動して画像を切り替える
                star.texture = SKTexture(imageNamed: "star\(count%3 + 1).png")
                self.addChild(star)
            }
        }
    }

画像だけを差し替えていくわけではなさそうで、一旦starをremoveFromParentしてまたaddChildしないと、エラーになります。
一応動いたものの、よく分からない。。。

もう少し調べてみます。