cocos2d - x 의 단일 모델 활용

5824 단어
다음으로 이동:http://blog.csdn.net/we000636/article/details/8536878
우 리 는 C + + 에서 종종 단일 모드 를 사용 할 수 있 지만, cocos2d - x 에서 단일 모드 를 사용 할 때 귀 찮 은 일 을 당 했 는 지, 여러 가지 "해석 할 수 없습니다", "error LNK" 오류 가 발생 했 습 니 다.
다음은 cocos2d - x 에서 다음 단일 모드 를 어떻게 작 성 했 는 지 예 를 들 어 간단하게 소개 하 겠 습 니 다.
게임 에서 전역 적 으로 접근 할 수 있 는 유일한 변 수 를 저장 하기 위해 서 Global 을 만 들 었 습 니 다. 이것 은 우리 가 언제든지 임의의 대상 에서 Global 을 방문 하여 저 장 된 유일한 변 수 를 읽 을 수 있 도록 요구 합 니 다.
헤더 파일 은 다음 과 같 습 니 다:
[cpp] view plain copy print ?
#ifndef _GLOBAL_H_
  • #define _GLOBAL_H_

  • #include "cocos2d.h"

  • #include "StartLayer.h"

  • class Global{
  • public:

  • StartLayer * startLayer; / 전역 에 접근 할 수 있 는 유일한 변 수 를 저장 합 니 다
  • static Global * toIns (); / / 이 방법 으로 글로벌 대상 에 게 돌아 가기
  • protected:
  • ~Global();

  • };

  • #endif
    [cpp] view plain copy print ?
    #ifndef _GLOBAL_H_
  • #define _GLOBAL_H_

  • #include "cocos2d.h"

  • #include "StartLayer.h"

  • class Global{
  • public:

  • StartLayer * startLayer; / 전역 에 접근 할 수 있 는 유일한 변 수 를 저장 합 니 다
  • static Global * toIns (); / / 이 방법 으로 글로벌 대상 에 게 돌아 가기
  • protected:
  • ~Global();

  • };

  • #endif
    #ifndef _GLOBAL_H_
    #define _GLOBAL_H_
    
    #include "cocos2d.h"
    #include "StartLayer.h"
    
    class Global{
    public:
    	StartLayer* startLayer; //              
    	static Global* toIns(); //        Global  
    protected:
    	~Global();
    };
    
    #endif

    Cpp 파일 은 다음 과 같 습 니 다.
    [cpp] view plain copy print ?
    #include "Global.h"

  • using namespace cocos2d;
  • static Global * share = NULL; / 이 줄 은 매우 중요 합 니 다. 우리 가 전에 저 지 른 오 류 는 C + + 습관 입 니 다. 이 변 수 를 헤더 파일 에 설명 하고 초기 화하 면 오류 가 발생 합 니 다
  • Global::~Global(void){
  • startLayer = NULL;

  • }
  • Global* Global::toIns(){

  • if(!share){
  • share = new Global();

  • CCLOG("first");
  • }

  • CCLOG("hello");
  • return share;

  • }
    [cpp] view plain copy print ?
    #include "Global.h"

  • using namespace cocos2d;
  • static Global * share = NULL; / 이 줄 은 매우 중요 합 니 다. 우리 가 전에 저 지 른 오 류 는 C + + 습관 입 니 다. 이 변 수 를 헤더 파일 에 설명 하고 초기 화하 면 오류 가 발생 합 니 다
  • Global::~Global(void){
  • startLayer = NULL;

  • }
  • Global* Global::toIns(){

  • if(!share){
  • share = new Global();

  • CCLOG("first");
  • }

  • CCLOG("hello");
  • return share;

  • }
    #include "Global.h"
    
    using namespace cocos2d;
    static Global* share=NULL; //      ,          C++  ,                ,    
    Global::~Global(void){
    	startLayer = NULL;
    }
    Global* Global::toIns(){
    	if(!share){
    		share = new Global();
    		CCLOG("first");
    	}
    	CCLOG("hello");
    	return share;
    }

    이렇게 할 수도 있다.
    헤더 파일 은 다음 과 같 습 니 다:
    [cpp] view plain copy print ?
    #ifndef _GLOBAL_H_
  • #define _GLOBAL_H_

  • #include "cocos2d.h"

  • #include "StartLayer.h"

  • class Global{
  • public:

  • StartLayer* startLayer;
  • static Global* toIns();

  • static Global * share; / 정적 변 수 는 여기 있 습 니 다
  • protected:

  • ~Global();
  • };

  • #endif

  • [cpp] view plain copy print ?
    #ifndef _GLOBAL_H_
  • #define _GLOBAL_H_

  • #include "cocos2d.h"

  • #include "StartLayer.h"

  • class Global{
  • public:

  • StartLayer* startLayer;
  • static Global* toIns();

  • static Global * share; / 정적 변 수 는 여기 있 습 니 다
  • protected:

  • ~Global();
  • };

  • #endif
  • #ifndef _GLOBAL_H_
    #define _GLOBAL_H_
    
    #include "cocos2d.h"
    #include "StartLayer.h"
    
    class Global{
    public:
    	StartLayer* startLayer;
    	static Global* toIns();
    	static Global* share;  //         
    protected:
    	~Global();
    };
    
    #endif

    CPP 파일 은 다음 과 같 습 니 다.
    [cpp] view plain copy print ?
    #include "Global.h"

  • using namespace cocos2d;
  • //static Global* share=NULL;

  • Global * Global:: share = NULL; / 정적 변 수 를 헤더 파일 에 두 지 않 고 초기 화 합 니 다
  • Global::~Global(void){

  • startLayer = NULL;
  • }

  • Global* Global::toIns(){
  • if(!share){

  • share = new Global();
  • CCLOG("first");

  • }
  • CCLOG("hello");

  • return share;
  • }

  • [cpp] view plain copy print ?
    #include "Global.h"

  • using namespace cocos2d;
  • //static Global* share=NULL;

  • Global * Global:: share = NULL; / 정적 변 수 를 헤더 파일 에 두 지 않 고 초기 화 합 니 다
  • Global::~Global(void){

  • startLayer = NULL;
  • }

  • Global* Global::toIns(){
  • if(!share){

  • share = new Global();
  • CCLOG("first");

  • }
  • CCLOG("hello");

  • return share;
  • }
  • #include "Global.h"
    
    using namespace cocos2d;
    //static Global* share=NULL;
    Global* Global::share = NULL;  //          ,         
    Global::~Global(void){
    	startLayer = NULL;
    }
    Global* Global::toIns(){
    	if(!share){
    		share = new Global();
    		CCLOG("first");
    	}
    	CCLOG("hello");
    	return share;
    }

    코드 를 당신 의 프로젝트 에 활용 하 는 것 을 배 웠 습 니까?
    예외 적 으로 cocos2d - x 의 단일 예 (예 를 들 어 CCDirector) 안의 코드 를 참고 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기