[Swift] SpriteKit를 사용하여 일정 간격으로 처리합니다.

5152 단어 XcodeSwiftSpriteKit

화면 중앙부터 일정 간격으로 빨간색 사각형을 계속 사격한다.SFTimeInterval.
GameScene.swift

import SpriteKit

class GameScene: SKScene {

    // lastを用意しておく
    var last:CFTimeInterval!

    override func didMoveToView(view: SKView) {}

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {}

    // 赤い四角を、画面中央から上に向かって打ち出すメソッド
    func shoot() {
        let square = SKSpriteNode(color: UIColor.redColor(), size: CGSizeMake(40, 40))
        square.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
        square.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(40, 40))
        square.physicsBody.affectedByGravity = false
        square.physicsBody.velocity = CGVectorMake(0, 100)
        square.physicsBody.linearDamping = false
        self.addChild(square)
    }

    override func update(currentTime: CFTimeInterval) {

        // lastが未定義ならば、今の時間を入れる。
        if !last {
            last = currentTime
        }

        // 1秒おきに行う処理をかく。
        if last + 1 <= currentTime {

            self.shoot()

            last = currentTime
        }
    }
}

좋은 웹페이지 즐겨찾기