关闭

cocos 2dx 3.12 学习笔记(一)

标签: classcocosvs2013AppDelegate
71人阅读 评论(0) 收藏 举报
分类:

研究 单例类    AppDelegate  发现其中

virtual bool applicationDidFinishLaunching();

方法中

auto scene = HelloWorld::createScene();
director->runWithScene(scene);

创建了HelloWorld场景


创建一个新的场景,先创建一个类,在 .h文件中进行头文件声明,引入 cocos2d.h 并创建类


#ifndef __TEST_H__
#define __TEST_H__


#include "cocos2d.h"
USING_NS_CC;


class Test : public cocos2d::Layer //继承了 cocos2d的Layer父类
{

public :

static cocos2d::Scene * createScene(); //定义一个静态指针
public:
CREATE_FUNC(Test);   //这里使用了  CREATE_FUNC 这个宏,这个宏中,含有create方法,并且可以自动释放内存,使用这个,非常方便。
virtual bool init(); //定义init方法

};




#endif



在 .cpp文件中 引入 Test.h


#include "Test.h"


//创建一个场景

Scene * BallTest::createScene()
{
auto scene = Scene::create();


auto layer = BallTest::create();


scene->addChild(layer);


return scene;
}


//重新 init方法

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


在去AppDelegate.cpp文件中 引入 Test.h ,之后更改virtual bool applicationDidFinishLaunching(); 中的场景生成。将HelloWorld改为我们做的Test,即可看到我们刚刚写的场景了,因为没有添加任何Sprite进去,所以,运行起来是黑屏。也算是成功运行了。


遇到的问题:

1、我第一次遇到的是在 AppDelegae.cpp文件中 include 引入 Test.h却发现找不到。是因为在VS2013下,当我们新建项目的时候默认目录是在win32文件夹下,其实应该放在Class文件夹下。在项目中移除,重新再Class文件夹下进行创建即可解决问题。

2、之后在我重新写时候,发现可以引入,但在更改AppDelegate中生成场景的时候,却发现怎么也找不到类,原因是,第二次我copy了HelloWorld中的代码,结果吧头文件中的检测也copy过来,忘记更改,并且HelloWorld的文件没有删除造成的

#ifndef __TEST_H__
#define __TEST_H__
就是这两行代码,copy过来,忘记更改。


刚刚开始学习cocos,难免在文章中,有一些错误,用词不够专业。还请大家指出,进行更改,相互学习。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1457次
    • 积分:156
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类