XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)

猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢!

原文地址: http://www.cocos2dev.com/?p=505

因为常用cocos2dx开发游戏,所以每次新建cpp类文件的时候,XCode默认生成的cpp类基本就是一个空文件,每次都要重复实现cocos2dx的基本代码。很麻烦。(虽然我每次都是修改了HelloWorld文件,新建的文件直接copy HelloWorld内容。感觉还是挺麻烦的。)

今天就修改了下类模板,添加了2个cocos2dx的类模板,下面是新建文件的时候,是不是多出了2个类模板。

下面我就说下怎么添加xcode类模板,很简单的。

1、打开Xcode的类模板目录地址:/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates

2、打开里面C and C++文件,就会看到Xcode的cpp类模板文件。复制一个C++ Class.xctemplate文件夹取名:2dx Scene Class.xctemplate,放在C and C++目录下。

3、修改TemplateInfo.plist(主要修改创建文件时候的描述介绍)

打开2dx Scene Class.xctemplate/TemplateInfo.plist,   修改Description的值为:A C++ class for Cocos2d-x Scene.

4、修改___FILEBASENAME___.h

打开2dx Scene Class.xctemplate/___FILEBASENAME___.h,修改成以下内容:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____

#include "cocos2d.h"
USING_NS_CC;

class ___FILEBASENAMEASIDENTIFIER___ : public Layer
{
public:
    ___FILEBASENAMEASIDENTIFIER___();
    ~___FILEBASENAMEASIDENTIFIER___();
    static Scene* createScene();
    virtual bool init();
    CREATE_FUNC(___FILEBASENAMEASIDENTIFIER___);

private:
    void initData();
};

#endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */

5、修改___FILEBASENAME___.cpp

打开2dx Scene Class.xctemplate/___FILEBASENAME___.cpp,修改成以下内容:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

#include "___FILEBASENAME___.h"
___FILEBASENAMEASIDENTIFIER___::___FILEBASENAMEASIDENTIFIER___()
{

}

___FILEBASENAMEASIDENTIFIER___::~___FILEBASENAMEASIDENTIFIER___()
{

}

Scene* ___FILEBASENAMEASIDENTIFIER___::createScene()
{
    auto scene = Scene::create();
    auto layer = ___FILEBASENAMEASIDENTIFIER___::create();
    scene->addChild(layer);
    return scene;
}

bool ___FILEBASENAMEASIDENTIFIER___::init()
{
    if ( !Layer::init() )
    {
        return false;
    }
    initData();
    return true;
}

#pragma mark - initData
void ___FILEBASENAMEASIDENTIFIER___::initData()
{
    Size visibleSize = Director::getInstance()->getVisibleSize();

    // add your codes here...

}

ok, 这样就完成了一个类模板的添加。

现在在XCode里面新建一个2dx Scene类看看。是不是已经有默认内容了。

//
//  MyScene.h
//  MagicDemo
//
//  Created by LiuYanghui on 13-12-27.
//
//

#ifndef __MagicDemo__MyScene__
#define __MagicDemo__MyScene__

#include "cocos2d.h"
USING_NS_CC;

class MyScene : public Layer
{
public:
    MyScene();
    ~MyScene();
    static Scene* createScene();
    virtual bool init();
    CREATE_FUNC(MyScene);

private:
    void initData();
};

#endif /* defined(__MagicDemo__MyScene__) */
//
//  MyScene.cpp
//  MagicDemo
//
//  Created by LiuYanghui on 13-12-27.
//
//

#include "MyScene.h"
MyScene::MyScene()
{

}

MyScene::~MyScene()
{

}

Scene* MyScene::createScene()
{
    auto scene = Scene::create();
    auto layer = MyScene::create();
    scene->addChild(layer);
    return scene;
}

bool MyScene::init()
{
    if ( !Layer::init() )
    {
        return false;
    }
    initData();
    return true;
}

#pragma mark - initData
void MyScene::initData()
{
    Size visibleSize = Director::getInstance()->getVisibleSize();

    // add your codes here...

}

对应的你可以添加Layer的类模板。方法一样,我就不重复了。

关于文件模板里面的一个预定义变量,介绍下:

ok,还有很多有趣的功能,可以大家自己探索。比如工程模板,插件等等。

来源网址:http://blog.csdn.net/cocos2der/article/details/17610001

时间: 2024-11-11 19:04:21

XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)的相关文章

为XCode 6 添加新建类模板

用XCode 6在修改之前用XCode 5 的代码的时候突然间发现 XCode 6已经把新建带有 .xib 类的模板给删去了,而项目的新需求中又要用到新建带有 .xib 的类(用惯了~),所有不得不重新装了一下 XCode 5 ,把之前的类模板copy到了XCode 6. 具体做法: cp -r /Applications/Xcode\ 5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/T

XCode添加Cocos2d类模板

找到XCode的模板目录,一般在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates这个目录里面. 在子目录File Templates添加cocos2d文件夹(这里在在新建工程或者文件时候会显示出来)然后将下面的链接中的文件解压后复制到File Templates的子目录.http://pan.baidu.com/s/1sdeKe

c++类模板之间友元函数调用

1 #include <stdio.h> 2 #include <iostream> 3 4 using namespace std; 5 6 template<typename T> class BTree; 7 8 /***************************节点类模板*********************************/ 9 template<typename T> 10 class BTreeNode{ 11 friend

函数模板和类模板

一.函数模板 函数模板代表一类相同结构的函数,通过用户提供的具体参数,C++编译器在编译时刻能够将函数模板实例化,根据同一个模板创建出不同的具体函数,这些函数之间的不同之处主要在于函数内部一些数据类型的不同. 1 #include "stdafx.h" 2 #include <iostream> 3 using namespace std; 4 5 template <typename T> 6 T max1(T a,T b) 7 { 8 return a>

类模板特化

主类模板Stack,使用vector构建,实现栈的功能. template <typename T> class Stack { private: std::vector<T> elems; public: void push(T const &elem){ elems.push_back(elem); } void pop(){ if(elems.empty()) return; elems.pop_back(); } T top() const{ if(elems.em

类模板的写法

类模板的写法 定义一个类模板: Template < class或者也可以用typename T > class类名{ //类定义...... }; 说明:其中,template是声明各模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个. 例如:定义一个类模板: // ClassTemplate.h #ifndef ClassTemplate_HH #define ClassTemplate_HH template<typename T1,typename T2> c

类模板,链表,直接插入排序,选择排序,起泡排序

类模板:使用户可以为类声明一种模式,使类中某些数据成员,某些成员函数的参数,某些成员函数的返回值,能取任意类型. 类模板中,类名后必须跟<模板参数标识符列表> 在主程序中定义对象时,类需说明对象是什么类型,同样用<>括号,在<>尖括号中指定所需类模板的类型. 类模板: template<模板参数表> class 类名 { 类成员声明} 在类模板以外定义成员函数,都要带上template<模板参数表>,指定成员函数属于哪个类时,模板类名后必须跟&l

类模板 及其 特化

(1) // -------------类模板 体验--------------------template <typename T1, typename T2>class Test //原始的类模板后 加上class Test<T1, T2>会报错{public: void add(T1 a, T1 b) { cout << "void add(T1 a, T1 b)" << endl; cout << "a +

修改VS类模板自动添加public修饰符和版权注释信息

在开发过程中,我们经常需要给类或接口添加public修饰符(默认没有)和一些相关的注释信息,这个工作是机械而枯燥的,而这个简单的需求其实是可以通过修改VS自带的类模板来实现的,下面是详细的修改步骤. 1,找到目录C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Code\1033,找到class.zip文件并备份.[备份是可选操作] 2,打开该压缩文件并进一步打开其中的Clas