cocos 2dx 3.12 学习笔记(一)

研究 单例类    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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值