加载场景,背景,按钮,音乐,切换场景,初始plist

做项目的第一步就是分析——Mr.T:

首先你得知道这游戏有哪些组成部分:背景,精灵,动画,音效,图层关系啊等等
然后还得分析各个功能的实现逻辑:碰撞啊,跟踪啊,特效啊,关卡啊,子弹轨迹啊等等
头文件之间的应用,类的封装,函数的功能实现等等
再就是各种API的灵活运用啊,

至于为什么我们的第一款游戏要做打飞机,是因为这个游戏几乎能把做游戏该用的东西都用到,比较经典。

首先所有需要添加的组件都要先复制到项目的res文件夹下,然后再复制到编辑器中的的recouse文件下。程序中用到的组件名字始终要与文件夹中保存的组件名为准。

NO.1如何加载游戏背景图片:

首先得在类里面声明创建场景的函数:
auto scene = Scene::create();

另外该有的引用不能少
using namespace CocosDenshion;

然后就是添加背景图片的三句代码:
//creat函数传了两个参数,一个是图片名字,矩形函数(图层坐标:X,Y,图片吃穿:宽,高)
auto sprite = Sprite::create("background.jpg",Rect(0,0,320,480));   
sprite->setAnchorPoint(Vec2(0, 0));  //设置锚点
addChild(sprite);   //添加到图层

锚点是描述坐标,除了精灵的默认锚点在正中间,其他的都在左下角,有时候通过更改精灵锚点的方式可以让定位更加方便快捷。

NO.2如何加载游戏背景音乐:

//true表示循环播放,false表示播放一次
SimpleAudioEngine::getInstance()->playBackgroundMusic("menu.mp3", true);   

是的,就只有这么一句。也没有多复杂不是吗?

NO.3如何添加按钮*:*

//头文件中要声明Onstart的方法 
auto item4 = MenuItemFont::create("play", CC_CALLBACK_1(HelloWorld::onStart, this));
item4->setTag(1);   //这是给按钮设置标签
auto item3 = MenuItemFont::create("quit", CC_CALLBACK_1(HelloWorld::onStart, this));
item3->setTag(2);

//这是按钮的容器
auto menu = Menu::create(item4, item3, nullptr);
//下面两步完成添加到图层
menu->alignItemsVertically();
this->addChild(menu);
//设置文本按钮的坐标
menu->setPosition(Vec2(visibleSize.width / 2, visibleSize.height/2));

NO.4如何切换游戏场景:

要切换场景,首先你得新建一个场景头文件,和CPP文件
头文件的名字和类名要一致,创建好的场景头文件要在第一个场景的CPP中做好引用
引用的步骤是:点击项目名->属性->常规->(后面的我忘了,明天再补起来)

//实现onstart方法
void HelloWorld::onStart(cocos2d::Ref* pSender)
{
    auto str = (MenuItemFont*)pSender;
    int tag = str->getTag();
    if (tag == 1)     
    {
        auto scene = StartGameScene::createScene();
        //场景切换特效API的使用
        Director::getInstance()->replaceScene(TransitionPageTurn::create(1.0, scene, true));
    }else{
        Director::getInstance()->end();
    }
}

NO.5 Plist格式文件:

目前所了解到的就是,当我们将多个精灵缓存到一张图片上时,可以用Plist文件对图中的每一个精灵进行描述。当我们不调用时它们是不显示的,这样我们就可根据游戏的需要选择性的切换显示图片。这种方式能够提高效率也节省空间。(具体细节待明日扩展)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值