Cocos Creator FAQ 요약
3016 단어 운창동력
일반적인 질문 요약:
1. 로컬 데이터 저장
cc.sys.localStorage.getItem(key,value);
cc.sys.localStorage.setItem(key,value);
2. 텍스트 파일 읽기
cc.loader.loadTxt(cc.url.raw(‘scripts/test.proto’), function(err, txt) {
// ,err null, :err:{‘status':0,’errorMessage’:’….'}
// txt
});
3. LOG 정보 인쇄:
먼저 Debug 구성을 초기화해야 합니다.
cc._initDebugSetting(cc.DebugMode.INFO);
cc.log(‘print log info …’);
4. 장면 전환 애니메이션:
[A 장면에서 B 장면으로 전환]
A 장면:
this.node.runAction(cc.fadeOut(1.0));
cc.director.loadScene(‘B’);
B장면
Canvas 아래 또는 background 노드 아래
onload:function(){
this.node.runAction(cc.fadeIn(1.0));
…….
}
아니면 런액션 줄을this로 바꾸세요.getComponent(cc.Animation).play(‘customAnim’);
5. 정령의 무늬를 동적으로 교체:
var imgUrl = cc.url.raw(‘imgs/xx.png’);
var texture = cc.textureCache.addImage(imgUrl);
this.getComponent(cc.Sprite).spriteFrame.setTexture(texture);
6.cc.Lable 어셈블리 숨기기 방법:
label.enabled =false//단일 구성 요소 숨기기
(onLoad: function () 에 쓰면 효과가 없습니다. 편집기에서 체크아웃할 수 있습니다)
혹은
label.node.active =false//전체 node의 모든 구성 요소를 비활성화합니다.
7.require 스크립트 파일, 스크립트의load 함수는 외부에 놓고 호출해야 합니다. js가 불러올 때 호출하지 마십시오. 이 때 엔진의 일부 파라미터가 초기화되지 않았기 때문입니다.
8. 노드 구성 요소 가져오기 및 찾기 사용법:
a. canvas 노드 아래의 하위 노드 score-bg 가져오기
-> 하위 노드에 계층이 없습니다:this.node.getChildByName(‘score-bg’);
-> 하위 노드는 여러 계층 아래에 있습니다: cc.find(“background/score-bg”, this.node);
b. 현재 노드 scoreNode에서 Label 구성 요소를 가져옵니다.
scoreNode.getComponent(cc.Label);
9.Node의 Action 액션 시스템과 Widget 호환 문제:
node.runAction(..);
주의사항: node 노드 위에 Widget 구성 요소가 포함되어 있고 top,bottom,left,right의 수치가 설정되어 있습니다.
예:right=50px, 효과는 노드 노드가 화면 오른쪽 가장자리에서 항상 50px에서 떨어지는 것이다.
이때 너는 노드에 cc를 추가해라.moveBy(2,-100,-100)동작, 이때 node는 y방향만 움직이고 x방향은 움직이지 않습니다.
node의position 속성을 수정하려면 Widget 구성 요소를 해제해야 합니다.
//노드의 구성 요소를 가져와서 제거합니다.
var widget = pauseNode.getComponent(cc.Widget);
pauseNode.removeComponent(widget);
10. 동적 노드 추가:
//동적 노드 추가
var dynamicNode = new cc.Node(‘sprite 1’);
//Sprite 구성 요소 추가
var sp = dynamicNode.addComponent(cc.Sprite);
//그림 문양 읽기
var imgUrl = cc.url.raw(‘textures/tangguo/floor.png’);
var texture = cc.textureCache.addImage(imgUrl);
//렌더링 이미지 리소스 만들기
sp.spriteFrame = new cc.SpriteFrame();
//텍스쳐 바인딩
sp.spriteFrame.setTexture(texture);
//노드 좌표 설정
dynamicNode.setPosition(200,0);
//상위 노드에 노드 추가하기
this.node.addChild(dynamicNode);
11. 애니메이션 구성 요소:
var anim = this.player.getComponent(cc.Animation);
anim.play();
만약 애니메이션 구성 요소가position 속성을 수정하고 있다면 코드에서 수정할 수 없습니다.
12. Android 프로젝트에서 Eclipse 오류 문제 가져오기:
캡처된 위치에서 인용된lib 경로가 정확한지 확인하십시오. 정확하지 않으면 아래의lib 프로젝트를 Eclipse로 가져올 수 있습니다.
/Users/haocao/CocosCreatorWorkPlace/HelloWorld/build/HelloWorld/jsb/frameworks/cocos2d-x/cocos/platform/android/java
그리고 HelloWorld의 Library 의존도를 수정합니다.