标签:
#ifndef _MYGAME_SCENE_H_
#define _MYGAME_SCENE_H_
#include "cocos2d.h"
class MyGame : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(MyGame);
};
#endif // _MYGAME_SCENE_H_
#include "MyGameScene.h"
USING_NS_CC;
//一个名字空间;它表示着using namespace cocos2d
//这是USING_NS_CC的定义: #define USING_NS_CC using namespace cocos2d
Scene* MyGame::createScene()
{
auto scene = Scene::create();
auto layer = MyGame::create();
scene->addChild(layer);
return scene;
}
bool MyGame::init()
{
if (!Layer::init()) //判断父类图层是否初始化
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
//获取当前运行窗口的大小
Vec2 origin = Director::getInstance()->getVisibleOrigin();
//获取当前窗口的原点坐标
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
auto bg = Sprite::create("bg1.png");
bg->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
//下面是将图片调节到与窗口同比例的缩放;图片 / 窗口
float xs = visibleSize.width / bg->getContentSize().width;
float ys = visibleSize.height / bg->getContentSize().height;
bg->setScale(xs, ys);
//setScale()是一个缩放方法;若要是图片铺满整个显示框,可以使用此函数要将图片与运行框同比例缩放,同时如果想放大或缩小每一个节点的大小,///也可以使用可方法
this->addChild(bg,0);
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
auto mouse = Sprite::create("mouse.png");
mouse->setPosition(Vec2(visibleSize.width / 3 + origin.x, visibleSize.height / 4 + origin.y));
mouse->setScale(0.5, 0.5); //节点的缩放,这里是缩小
this->addChild(mouse, 1);
auto hammer = Sprite::create("hammer.png");
hammer->setPosition(Vec2(visibleSize.width / 2.5 + origin.x, visibleSize.height / 2 + origin.y));
hammer->setScale(0.7, 0.7);
this->addChild(hammer);
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
auto label = Label::createWithTTF("Whac-a-mole", "fonts/Marker Felt.ttf", 38);
//createWithTTF是创建标签文本的方法,其中第一个参数是要显示的内容,第二个是字体格式(fonts/Marker Felt.ttf
//表示在fonts文件夹下的Marker Felt.ttf字体,第三个参数是字体的大小,数字越大字体越大)
label->setPosition(Vec2(origin.x + visibleSize.width / 2,
origin.y + visibleSize.height - label->getContentSize().height));
//Vec2(x,y);表示的是坐标点位置,setPosition()是设置位置的方法,给出位置,就能到特定的位置
this->addChild(label,1);
auto start = Label::createWithTTF("Start", "fonts/Marker Felt.ttf", 24);
start->setPosition(Vec2(origin.x + visibleSize.width / 2,
(origin.y + visibleSize.height - (visibleSize.height / 2))));
this->addChild(start, 2);
auto Help = Label::createWithTTF("Help", "fonts/Marker Felt.ttf", 24);
Help->setPosition(Vec2(origin.x + visibleSize.width / 2,
(origin.y + visibleSize.height - (visibleSize.height / 2) - (Help->getContentSize().height*1.5))));
this->addChild(Help, 2); //这里的这个2表示的是z轴(数字越大,就越在上层,不容易被覆盖)
auto Exit = Label::createWithTTF("Exit", "fonts/Marker Felt.ttf", 24);
Exit->setPosition(Vec2(origin.x + visibleSize.width / 2,
(origin.y + visibleSize.height - (visibleSize.height / 2) - ((Exit->getContentSize().height*1.5)*2))));
this->addChild(Exit, 2);
//getContentSize()表示获取当前对象节点的高或框;Exit->getContentSize().height表示取得对象节点Exit的高度
return true;
}
1. 首先创建.h的头文件,然后在将一些图片声音素材加到resource文件夹内,最后在创建.cpp文件;
.h头文件中创建一个类,此类一般继承自Layer,首先有一个静态的创建场景的方法,然后是一个初始化方法,还有一个CREATE_FUNC宏; .cpp中就是对.h中class中定义的方法来进行实现
#ifndef _MYGAME_SCENE_H_
#define _MYGAME_SCENE_H_
#include "cocos2d.h"
class MyGame : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(MyGame);
};
#endif // _MYGAME_SCENE_H_
#include "MyGameScene.h"
USING_NS_CC;
//一个名字空间;它表示着using namespace cocos2d
//这是USING_NS_CC的定义: #define USING_NS_CC using namespace cocos2d
Scene* MyGame::createScene()
{
auto scene = Scene::create();
auto layer = MyGame::create();
scene->addChild(layer);
return scene;
}
bool MyGame::init()
{
if (!Layer::init()) //判断父类图层是否初始化
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
//获取当前运行窗口的大小
Vec2 origin = Director::getInstance()->getVisibleOrigin();
//获取当前窗口的原点坐标
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
auto bg = Sprite::create("bg1.png");
bg->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
//下面是将图片调节到与窗口同比例的缩放;图片 / 窗口
float xs = visibleSize.width / bg->getContentSize().width;
float ys = visibleSize.height / bg->getContentSize().height;
bg->setScale(xs, ys);
//setScale()是一个缩放方法;若要是图片铺满整个显示框,可以使用此函数要将图片与运行框同比例缩放,同时如果想放大或缩小每一个节点的大小,///也可以使用可方法
this->addChild(bg,0);
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
auto mouse = Sprite::create("mouse.png");
mouse->setPosition(Vec2(visibleSize.width / 3 + origin.x, visibleSize.height / 4 + origin.y));
mouse->setScale(0.5, 0.5); //节点的缩放,这里是缩小
this->addChild(mouse, 1);
auto hammer = Sprite::create("hammer.png");
hammer->setPosition(Vec2(visibleSize.width / 2.5 + origin.x, visibleSize.height / 2 + origin.y));
hammer->setScale(0.7, 0.7);
this->addChild(hammer);
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
auto label = Label::createWithTTF("Whac-a-mole", "fonts/Marker Felt.ttf", 38);
//createWithTTF是创建标签文本的方法,其中第一个参数是要显示的内容,第二个是字体格式(fonts/Marker Felt.ttf
//表示在fonts文件夹下的Marker Felt.ttf字体,第三个参数是字体的大小,数字越大字体越大)
label->setPosition(Vec2(origin.x + visibleSize.width / 2,
origin.y + visibleSize.height - label->getContentSize().height));
//Vec2(x,y);表示的是坐标点位置,setPosition()是设置位置的方法,给出位置,就能到特定的位置
this->addChild(label,1);
auto start = Label::createWithTTF("Start", "fonts/Marker Felt.ttf", 24);
start->setPosition(Vec2(origin.x + visibleSize.width / 2,
(origin.y + visibleSize.height - (visibleSize.height / 2))));
this->addChild(start, 2);
auto Help = Label::createWithTTF("Help", "fonts/Marker Felt.ttf", 24);
Help->setPosition(Vec2(origin.x + visibleSize.width / 2,
(origin.y + visibleSize.height - (visibleSize.height / 2) - (Help->getContentSize().height*1.5))));
this->addChild(Help, 2); //这里的这个2表示的是z轴(数字越大,就越在上层,不容易被覆盖)
auto Exit = Label::createWithTTF("Exit", "fonts/Marker Felt.ttf", 24);
Exit->setPosition(Vec2(origin.x + visibleSize.width / 2,
(origin.y + visibleSize.height - (visibleSize.height / 2) - ((Exit->getContentSize().height*1.5)*2))));
this->addChild(Exit, 2);
//getContentSize()表示获取当前对象节点的高或框;Exit->getContentSize().height表示取得对象节点Exit的高度
return true;
}
其中的HelloWorld和MyGame均是.h文件中的类名;改好即可,若不该这两项的话运行的还是HelloWorldScene,而不是自己写的MyGameScene
标签:
原文地址:http://www.cnblogs.com/geore/p/5790584.html