在上一章中(http://panbook.net/view/181.html),我们学习了一下cocos2dx的helloworld项目,这一章我们来仿照它来自定义我们自己的层和精灵。
1.建立一个自己的cpp文件和头文件
右键点击项目的class文件,选择新建:
在弹出的选择框内选择新建cpp文件:
点击next进入后输入文件名,并且勾选自动创建h文件的选项:
我输入mysence后点击下一步它就会创建头文件和cpp文件:
2.编辑头文件,代码及注释如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
//
//MySence.h
//HelloWorld
//
//Createdbypanpanon14/11/30.
//
//
#ifndef__HelloWorld__MySence__//系统自动生成
#define__HelloWorld__MySence__//系统自动生成
#include"cocos2d.h"//我们要引入cocos2d.h文件,这样我们才能找到并使用cocos2dx的函数
class
My:cocos2d::Layer{
//声明一个类,名为My,继承了cocos2d的Layer
public
:
//公有
static
cocos2d::Scene*createScene();
//一个静态的创建场景的方法,供APPDelegate调用
virtual
bool
init();
//一个虚函数,系统会自动调用init方法
CREATE_FUNC(My);
//cocos2d定义的一个宏,把我们的类传入,它会自动给我们创建一些初始化需要的东西,包括自动调用init();
};
#endif/*defined(__HelloWorld__MySence__)*/
|
3.编辑cpp文件,其代码及注释如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
//MySence.cpp
#include"MySence.h"//引入头文件
USING_NS_CC;
//系统自定义的宏,其功能是要我们引入cocos2dx的空间
Scene*My::createScene(){
//头文件声明的函数
auto
scene=Scene::create();
//创建一个场景
layer=My::create();
//创建一个层,因为我们的my继承自layer,所以调用my的创建函数即是创建了layer,这里系统会自动去调用init函数
scene->addChild(layer);
//将层添加到场景
return
scene;
//返回该场景
}
My::init(){
//头文件声明的方法,供类创建时自动调用
if
(!Layer::init()){
//调用父类的init,调用失败则返回false
return
false
;
}
sprite=Sprite::create(
"h0.jpg"
);
//创建我们自己的精灵,在创建时传入了图片,该图片在resources下,
this
->addChild(sprite);
//将创建好的精灵加入层,即自己
true
;
//返回true
}
|
上面用到一个资源文件,h0.jpg:
4.编辑AppDelegate文件:
将引入改为:
1
2
|
#include"AppDelegate.h"
#include"MySence.h"
|
在创建层时调用我们的方法:
5.编译运行:
我们可以看到,自己的精灵已经创建好了,下一章我们将讲解怎么去对精灵进行放大,缩小,旋转,位置移动。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。