[Swift] 중력을 무시하고 고정합니다.

6736 단어 XcodeSwiftSpriteKit
나는 단지 중력을 무시하는 부분을 기록하고 싶었을 뿐이다.

게임에서 SpriteKit을 선택하여 새로운 프로젝트, 게임Scene을 만듭니다.swift에만 적으세요.
GameScene.swift
import SpriteKit

class GameScene: SKScene, SKPhysicsContactDelegate {

    override func didMoveToView(view: SKView) {

        self.physicsWorld.gravity = CGVectorMake(0.0, -1.0)
        self.size = view.bounds.size
        self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)


        // 赤い正方形の設定。
        let redSquare = SKSpriteNode(color: UIColor.redColor(), size: CGSizeMake(50, 50))
        redSquare.position = CGPoint(
            x: CGRectGetMidX(self.frame),
            y: CGRectGetMidY(self.frame)
        )
        redSquare.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(50, 50))

        // 重力を無視する。
        redSquare.physicsBody.affectedByGravity = false

        // 他の物体がぶつかっても、動かないようにしておく。
        redSquare.physicsBody.dynamic = false

        self.addChild(redSquare)
    }

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

        // タップした位置にグリーンの長方形を出す。
        for touch in touches {
            let location = touch.locationInNode(self)
            let greenRectangle = SKSpriteNode(color: UIColor.greenColor(), size: CGSizeMake(70, 50))
            greenRectangle.position = location
            greenRectangle.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(70, 50))
            self.addChild(greenRectangle)
        }
    }
    override func update(currentTime: CFTimeInterval) {}
}

좋은 웹페이지 즐겨찾기