zoukankan      html  css  js  c++  java
  • 05--简单场景切换与精灵创建

           场景就是游戏的不同状态,如游戏菜单、游戏关卡等等。而场景的切换由导演类CCDirector来完成,通常我们使用replaceScene(CCScene *pScene)函数来切换场景。为了方便我使用上一节的项目,新建一个场景GameScene类和一个图层GameLayer类。

    //GameScene.h
    #pragma once
    
    #include "cocos2d.h"   //使用VS类向导添加,需要手工添加这句    
    
    class GameScene : public cocos2d::CCScene
    {
    public:
        GameScene(void);
        ~GameScene(void);
    };
    //GameScene.cpp
    #include "GameScene.h"
    GameScene::GameScene(void)
    {}
    GameScene::~GameScene(void)
    {}
    
    //GameLayer.h 
    #pragma once
    #include "cocos2d.h"
    
    class GameLayer : public cocos2d::CCLayer
    {
    public:
        GameLayer(void);
        ~GameLayer(void);
    };
    
    //GameLayer.cpp
    #include "GameLayer.h"
    using namespace cocos2d; //添加命名空间,要不然引擎的类如CCSize才能使用   
    GameLayer::GameLayer(void)
    {
        //获得屏幕的大小
        CCSize size = CCDirector::sharedDirector()->getWinSize();
    
        //创建一行文本并设置位置在屏幕中间
        CCLabelTTF* pLabel= CCLabelTTF::create("Game Scene.", "Arial",30);
        pLabel->setPosition(ccp(size.width/2,size.height/2));
        //将这行文本添加到布景中
        addChild(pLabel);

            CCSprite* pSprite = CCSprite::create("water.png");
        pSprite->setPosition(ccp(size.width/2,size.height/2+80));
        addChild(pSprite);

        
    }
    
    GameLayer::~GameLayer(void)
    {
    }

            然后修改图片菜单的回调函数如下:

    void HelloWorld::menuPlayCallback(CCObject* pSender)
    {
        CCLOG("menuPlayCallback");
    
        //实例化一个场景和图层,并将图层添加到场景中
        CCScene* pScene=new GameScene();  //需要引入头文件哈
        CCLayer* pLayer=new GameLayer();
        pScene->addChild(pLayer,0);
    
        //使用淡入淡出效果切换场景
        CCDirector::sharedDirector()->replaceScene( CCTransitionFade::create(2, pScene));
        //释放
        pLayer->release();
        pScene->release();
    }

            OK场景切换代码写完了,看看运行效果:

    imageimage

  • 相关阅读:
    PHP javascript cookie
    angular.js初探
    熟悉陌生框架或代码, 产品设计小结
    question2answer论坛框架分析及web开发思考
    一个很好用的系统管理的命令lsof(转载)
    Linux nc命令用法收集
    Linux IO实时监控iostat命令详解(转载)
    AIX中查找端口号和进程
    bash之局部变量与子shell(转载)
    Linux下产生随机密码10方法
  • 原文地址:https://www.cnblogs.com/BlueBeauty/p/3695156.html
Copyright © 2011-2022 走看看