Cocos2dv3 Sprite Builder 및 Swift 구성 요소 연결, 다양한 애니메이션

지난번까지.

  • SpriteBuilder 가져오기
  • SpriteBuilder의 완료 확인
  • CocoaPods 설치
  • SpriteBuilder 및 XCode 화면을 통한 마이그레이션
  • 이번 결승점


    이번에는 오솔길을 조금 벗어났다.
    SpriteBuilder 구성의 어셈블리 처리를 기록합니다.
    이번 내용은 이 편과 상관없이, 스prite Builder가 설정한 구성 요소를 알고 싶은 사람을 위해 썼습니다.
    그리고 남은 시간 동안 CCAction로 간단한 애니메이션을 만들 거예요.

    이번에 만든 게임.


    이번에는 풍선 사격이라는 게임을 만들 계획이다.
    원래 제가 했어요.

    Space Debris
    이것은 게임의 속편이다.
    만약 네가 이것을 할 수 있다면, 나는 네가 어떤 게임을 하고 싶은지 상상할 수 있을 것이라고 생각한다.

    게임Scene 의 클래스 이름 을 붙이다


    저번를 참고하여 GameScene.ccb의CC노드에 GameScene라는 이름을 붙여주세요.

    명명된 구성 요소



    여기Custom class라고 쓰여 있습니다._testLabel에 설정을 추가하십시오.
    이번 스프릿 빌더는 이것밖에 없어요.

    Scene이 저장된 그룹 만들기



    강제는 아니지만 제작진은 위의 그림처럼 먼저 폴더를 만들고 드래그해야 한다

    이러한 대화 상자가 표시되므로 그룹을 생성하려면 custom class를 선택합니다.
    이렇게 하면 이 그룹에 클래스 파일 등을 추가하면 기본적으로 폴더에 끌어다 놓습니다.

    XCode의 조합이 편리합니까?


    X코드의 조합은 편리하지만 실제 폴더와 저장된 곳이 다르기 때문에 실제 파일을 찾느라 고생한다.
    이 경우 조합과 폴더를 어느 정도 조정하는 것을 권장합니다.
    클래스 파일은 괜찮지만 대량의 자원 파일(그림 등)을 관리할 때Doc root var로 제작하면 프로그램 코드에서 자원을 쉽게 찾을 수 있다.
    말이 끊겼기 때문에 여기서는 말하지 않겠지만, 엑스코드와의 만남이 순조롭게 이뤄지지 않는다면 앞으로의 보수성이 걸린 셈이다.(만약 요구가 있다면 나는 내가 만났던 예상치 못한 항목을 쓸 것이다.)

    게임을 만들다.



    방금 만든 그룹에 분류를 만듭니다.
    상속자는 Create Groups로 바꿔주세요.
    코코스2dCreate folder references가 전부다.코코아가 말한 CCNode와 같은 위치에 있다.
    그나저나 코코아CCNode에는 상당한 것이 없다.UIView 쌍방의 역할을 맡고 있다.
    Sprite Builder를 사용하여 만든 파일UIViewController,CCNode,Scene는 모두 Swift에서Layer로 처리됩니다.CCNode 등은 존재하지 않습니다.CCNode는 존재하지만 사용할 필요가 없습니다.스프리트바이일더가 제작한 매인씬도 계승CCLayer 제작했다.

    글자를 바꾸어 보아라.


    게임 내용을 개작하다.(import 문구가 필요하지 않기 때문에 절대 문제가 없습니다.)
    GameScene.swift
    class GameScene: CCNode {
        // この変数にSpriteBuilderで作成したコンポーネントが差し込まれる。
        weak var _testLabel:CCLabelTTF!
    
        // 画面が生成後に同期で呼び出される。
        func didLoadFromCCB() {
            _testLabel.string = "置きかわる!"
        }
    }
    
    내가 실행해보고 싶다면 스프릿 빌더가 만든 레이블의 내용이 바뀌고 있다는 것을 알아라.CCScene 처음에 CCNode로 연결된 변수명으로 연결한다.(weak 키워드가 있는 이유는 읽으세요이 보도.웹페이지를 모르는 사람은 필독!_testLabel Sprite Bulder에 설정된 모든 구성 요소를 삽입한 후 호출합니다.
    게임 생성 시
    CCBReader.loadAsScene("GameScene")
    
    이런 코드를 썼던 거 기억나세요?
    이걸 아래에 잘못 쓰면 아무것도 없는 CC 노드가 생성됩니다
    GameScene()
    
    SpriteBuilder 생성didLoadFromCCB, 스프릿 Builder가 설정한 구성 요소를 삽입한 것이다.


    어렵기 때문에 다양한 일을 시도해 보세요.

    기울어지다

        func didLoadFromCCB() {
            _testLabel.rotation = 30.0  // 30度傾ける。
        }
    

    확대하다.

        func didLoadFromCCB() {
            _testLabel.scale = 2.0  // 2倍
        }
    

    2초 걸려요.

        func didLoadFromCCB() {
            _testLabel.runAction(CCActionRotateTo(duration: 2.0, angle: 30.0))
        }
    
    코코스2d의 애니메이션은 매우 우수하다.
    애니메이션은 CCAction을 상속하는 클래스를 객체 CC 노드의 loadAsScene에 전달하기만 하면 됩니다.
    (CCAction 클래스는 사용되지 않으며 각 CC 노드에서 동일한 작업을 수행하려면 해당 CCAction 인스턴스를 작성해야 합니다.)

    2초에 두 배 크기로 만들어요.

        func didLoadFromCCB() {
            let action = CCActionScaleBy(duration: 2.0, scale: 2.0)
            _testLabel.runAction(action)
        }
    
    action은 다른 변수에서 생성된 예입니다.
    CCAction의 마지막 부분GameScenerunAction가 있는데 이것은 영어의 뜻과 같다
  • To...현재 상태와 상관없이 이 상태로 변경됩니다.
  • By...현재 상태에서 이 상태로 변경합니다.
  • 잘 모르는 사람은 아래 코드만 실행하면 금방 뜻을 알 수 있을 것 같습니다.
        func didLoadFromCCB() {
            _testLabel.scale = 2.0
            let action = CCActionScaleBy(duration: 2.0, scale: 2.0)
            _testLabel.runAction(action)
        }
    
        func didLoadFromCCB() {
            _testLabel.scale = 2.0
            let action = CCActionScaleTo(duration: 2.0, scale: 2.0)
            _testLabel.runAction(action)
        }
    

    동시 동작

        func didLoadFromCCB() {
            let action1 = CCActionScaleTo(duration: 2.0, scale: 2.0)
            let action2 = CCActionRotateTo(duration: 2.0, angle: 30.0)
            _testLabel.runAction(action1)
            _testLabel.runAction(action2)
        }
    
    이렇게 여러 개To를 호출하면 여러 동작을 동시에 실행할 수 있다.
    또한 다음과 같이 CCAction을 요약할 수 있습니다.
        func didLoadFromCCB() {
            let action1 = CCActionScaleTo(duration: 2.0, scale: 2.0)
            let action2 = CCActionRotateTo(duration: 2.0, angle: 30.0)
            let action = CCActionSpawn(array: [action1, action2])
            _testLabel.runAction(action)
        }
    
    동작이 같다.

    순서대로 조작하다.

        func didLoadFromCCB() {
            let action1 = CCActionScaleTo(duration: 2.0, scale: 2.0)
            let action2 = CCActionRotateTo(duration: 2.0, angle: 30.0)
            let action = CCActionSequence(array: [action1, action2])
            _testLabel.runAction(action)
        }
    
    여기까지만 설명하지 않아도 충분하다.

    동작을 멈추다.


    상기 제작된 것을 유지함By
    _testLabel.stopAction(action)
    
    이렇게 동작을 멈추다.

    동작 일시 중지

    _testLabel.paused = true
    
    등, 잠시 동작을 멈출 수 있다.

    다음


    SpriteBuilder로 애니메이션 만들기 단계를 설명합니다.
    내가 그 재료를 찾아볼게...풍선과 풍선에 걸린 물건.네.

    좋은 웹페이지 즐겨찾기