[Swift] 스프릿키트가 머리를 뽑는 위치에 직사각형을 만들어 내려놓고 쌓는다.

5546 단어 XcodeSwiftSpriteKit

그림 완성



방법

  • "Game"템플릿을 사용하여 새 프로젝트를 만듭니다.
  • Game Technology에서 "SpriteKit"를 선택합니다.
  • GameScene.swift는 다음과 같이 완성되었다.
  • 출처


    GameScene.swift
    import SpriteKit
    
    class GameScene: SKScene {
    
        override func didMoveToView(view: SKView) {
    
            // フレームサイズを、ビューの境界と同じにします。
            self.size = view.bounds.size
    
            // 重力の向きと強さを設定。
            self.physicsWorld.gravity = CGVectorMake(0.4, -2.4)
    
            // エッジを作ってノードが画面からはみ出さないようにします。
            self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
    
        }
    
        override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    
            for touch: AnyObject in touches {
    
                let location = touch.locationInNode(self)
    
                // 長方形をつくる。
                let rectangle = SKSpriteNode(color: UIColor.greenColor(), size: CGSizeMake(80, 40))
    
                rectangle.position = location
    
                // 長方形に物理的な性質をもたせる。(これで重力に従う。)
                rectangle.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(80, 40))
    
                self.addChild(rectangle)
            }
        }
    
        override func update(currentTime: CFTimeInterval) {}
    }
    

    사이즈의 보충이라기보다는 잡감이다.


    처음self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)나는 이렇게 하면 틀을 넘지 않을 것이라고 생각했지만 안 된다.바닥은 잘 드러나지만 직사각형은 양쪽으로 드러난다.
    그러므로self.size = view.bounds.size설정되었습니다.이렇게 하면 양쪽에서 드러나지 않을 거예요.
    확인해 봤는데 지정self.size 전의 상태에서
    치수 조사하기
    println(view.bounds.size) // (320.0,480.0)
    println(self.frame.size) // (1024.0,768.0)
    
    이렇게 됐어.그러니까 드러내야 돼.

    좋은 웹페이지 즐겨찾기