cocos2dx3.0 게임 프로그래밍 3 - 액션 게임 같은 대상의 상호작용
1. 발상 실현
단례류는 말 그대로 한 번만 실례화되는 것이다. 우리는 단례류에 각 대상의 지침을 저장하여 대상 간의 상호작용을 편리하게 한다.
2. 절차
클래스 템플릿
#ifndef __SINGLETON_H__
#define __SINGLETON_H__
template <class T>
class Singleton
{
public:
static inline T* getInstance();
void release();
protected:
Singleton(){}
~Singleton(){}
static T* m_instance;
};
template <class T>
inline T* Singleton<T>::getInstance()
{
if (!m_instance)
{
m_instance = new T;
}
return m_instance;
}
template <class T>
void Singleton<T>::release()
{
if (!m_instance)
{
return;
}
delete m_instance;
m_instance = 0;
}
#endif
단일 클래스 헤더 파일
4
#ifndef GLOBAL_H
#define GLOBAL_H
#include "cocos2d.h"
#include "Singleton.h"
#include "Define.h"
#include "Player.h"
using namespace cocos2d;
class Global : public Singleton<Global>
{
public:
Global();
~Global();
Player *player;
};
#endif
단일 클래스 구현#include "Global.h"
template<> Global* Singleton<Global>::m_instance = NULL;
Global::Global()
{
player = NULL;
}
Global::~Global()
{
}
단례류의 사용
Global::getInstance()->player //
3. 단례류는 사용하기에 확실히 편리하고 대상 간의 상호작용 문제를 쉽게 해결할 수 있다. 이 부분은 여기까지 하고 다음에 충돌 검측 시스템에 대해 이야기하자.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
cocos2d 학습노트(5)CCMenu와 CocosDenshion게임 중의 메뉴는 반드시 없어서는 안 된다. 그림, 텍스트 등을 사용할 수 있습니다. cocos2d는menuitem에 필요한 전환 방법을 제공했다. 예를 들어CCMenuItemLabel은 CCLabelBMFont를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.