당신과 함께 한 기사는 완전히 동적으로 자식 노드를 추가하고 아이의 특성을 수정하는 방법을 이해

마지막으로 공식 튜토리얼을 읽고, 코코스 창조주와 첫 경기를 시작했다 - "바이러스를 제거 - 중력 판"(PS를 : 그래서 밖으로 튜토리얼을 완료 한 후에 수행됩니다, 그래서 계속 지켜봐 주시기 바랍니다 ┗ (▔, ▔) ┛! )하지만, 첫 번째 단계는 구덩이에 달렸다, 나는 바이러스 예비 노드를 추가하여 역동적 인, 그리고 혈액의 바이러스를 수정하고 싶어했지만, 어떤 방법으로 긴 원래의 데이터를, 노드를 추가 한 후 노드의 속성을 수정 확인하지 되는 자식 노드의 구성 요소를 인수하지 , 자기가 그것의 단점 인 두 시간 낭비, 좋은 선생님은 정말 너무 중요한 존재입니다! 모두가 우회하도록하기 위해, 동적으로 자식 노드를 추가하고 자식 속성을 수정하는 방법을 가르쳐 오늘 데모를 작성합니다.

 

1. 먼저 장면에서 스프라이트 노드를 추가, 해당 텍스처 추가 :

 

2. 탐색기 디렉토리에 두 개의 JS 파일을 추가합니다 :

 

3. 다음과 같이 star.js 먼저 혈액 성급 호텔을 추가, 파일 스크립트를 편집 :

/** * star.js */cc.Class({    extends: cc.Component,    properties: {        blood:10    // 血量属性    },    // LIFE-CYCLE CALLBACKS:    // onLoad () {},    start () {    },    // update (dt) {},});

 

4. 편집 star.js 좋은 스크립트는 스타 노드를 마운트합니다 :

 

좋은 스크립트 노드 스타 드래그 탐색기 조립식 디렉토리 5. 마운트 구성 요소는 계층 구조 관리자의 스타 노드 후 삭제 될 수 있습니다 :

 

6. 다음 편집 game.js 스크립트가 먼저 동적 자식 노드를 추가하고 자식 속성을 설정할 수 있으며,이 건물에서 예비 속성을 추가 (PS : 수정 자식 속성이 getComponent 통과하는 것을 잊지 마세요 때 () 스크립트 구성 요소의 자식 노드) :

/** * game.js */cc.Class({    extends: cc.Component,    properties: {        StarPrefab: {            default: null,            type: cc.Prefab        }    },    // LIFE-CYCLE CALLBACKS:    // onLoad () {},    start() {        //动态生成新的子节点并设置位置        var star_1 = cc.instantiate(this.StarPrefab);        this.node.addChild(star_1);        star_1.setPosition(100,100);        //获取新生成的子节点的属性并修改        console.log("blood:"+star_1.getComponent('star').blood);        star_1.getComponent('star').blood = 100;        console.log("blood:"+star_1.getComponent('star').blood);    },    // update (dt) {},});

 

7. 다음으로, 편집 된 스크립트 후 캔버스에 game.js 노드를 탑재, 드래그 속성의 위치는 예비 스타에 해당 :

 

성공적으로 동적 스타 노드에 추가되었습니다 볼 수있는 미리보기, 100에서 혈액 특성에 수정 된 스타 노드 (10) 이후 8 :

 

결론 :

자율 학습의 길은 나는 그들의 꿈 게임을 실현하기 위해, 적절한 학습 방법을 찾기 위해 가능한 한 빨리하고 싶은, 고난으로 가득해야합니다!

 


 

나는 사람들이 긍정적 인 피드백 매일을 만들기 위해 결정 "슈퍼을 '이다!

 

 

추천

출처www.cnblogs.com/yu97271486/p/11302455.html