Cocos2dv3 Sprite Builder 및 Swift 구성 요소 연결, 다양한 애니메이션
14024 단어 게임 개발Swiftcocos2dSpriteBuilder
지난번까지.
이번 결승점
이번에는 오솔길을 조금 벗어났다.
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.swiftclass 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의 마지막 부분GameScene
과runAction
가 있는데 이것은 영어의 뜻과 같다
저번를 참고하여
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.swiftclass 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의 마지막 부분GameScene
과runAction
가 있는데 이것은 영어의 뜻과 같다
강제는 아니지만 제작진은 위의 그림처럼 먼저 폴더를 만들고 드래그해야 한다
이러한 대화 상자가 표시되므로 그룹을 생성하려면
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.swiftclass 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의 마지막 부분GameScene
과runAction
가 있는데 이것은 영어의 뜻과 같다
게임 내용을 개작하다.(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의 마지막 부분GameScene
과runAction
가 있는데 이것은 영어의 뜻과 같다
func didLoadFromCCB() {
_testLabel.rotation = 30.0 // 30度傾ける。
}
func didLoadFromCCB() {
_testLabel.scale = 2.0 // 2倍
}
func didLoadFromCCB() {
_testLabel.runAction(CCActionRotateTo(duration: 2.0, angle: 30.0))
}
func didLoadFromCCB() {
let action = CCActionScaleBy(duration: 2.0, scale: 2.0)
_testLabel.runAction(action)
}
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로 애니메이션 만들기 단계를 설명합니다.
내가 그 재료를 찾아볼게...풍선과 풍선에 걸린 물건.네.
Reference
이 문제에 관하여(Cocos2dv3 Sprite Builder 및 Swift 구성 요소 연결, 다양한 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/townsoft/items/1c1a2b450cc93098495c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Cocos2dv3 Sprite Builder 및 Swift 구성 요소 연결, 다양한 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/townsoft/items/1c1a2b450cc93098495c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)