• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Cocos2d-x学习笔记(17)(TestCpp源码分析-1)

mysql 搞代码 4年前 (2022-01-09) 33次浏览 已收录 0个评论

TestCpp源码基于Cocos2d-x2.1.3版本,部分资源来自红孩儿的游戏编程之路CSDN博客地址http://blog.gaodaima.com/honghaier/article/details/8130947 在VS2010中展开TestCpp工程,下面包含46个示例目录,除此之外,还包含:(1) AppDelegate.h/cpp:程序控制类App

TestCpp源码基于Cocos2d-x2.1.3版本,部分资源来自红孩儿的游戏编程之路CSDN博客地址http://blog.gaodaima.com/honghaier/article/details/8130947

在VS2010中展开TestCpp工程,下面包含46个示例目录,除此之外,还包含:(1)AppDelegate.h/cpp:程序控制类AppDelegate。(2)controller.h/cpp:示例场景管理类TestController,用于显示所有示例的菜单。(3)testBasic.h/cpp:示例场景基类TestScene,用于返回到主界面场景。(4)testResource.h:文件资源名称字符串定义头文件(5)tests.h:示例总头文件。(6)main.h/cpp:主函数及头文件。下面详细介绍下每个文件。

(1)AppDelegate.h/cpp:这两个文件是程序控制类AppDelegate,具体代码如下:

//AppDelegate.h#ifndef  _APP_DELEGATE_H_#define  _APP_DELEGATE_H_#include "cocos2d.h"class  AppDelegate : private cocos2d::CCApplication  //AppDelegate类私有继承于CCApplication{public:    AppDelegate();  //构造函数    virtual ~AppDelegate();  //析构函数    virtual bool applicationDidFinishLaunching();  //启动应用程序后将调用这个方法。默认的实现中已经包含了游戏启动后的必要准备    virtual void applicationDidEnterBackground();  //应用程序进入后台时,会调用这个方法    virtual void applicationWillEnterForeground();  //该方法与上个方法成对出现,应用程序返回前台时被调用。};#endif // _APP_DELEGATE_H_

这个头文件与学习笔记1介绍的一样。下面分析下cpp文件。

#include "AppDelegate.h"#include "cocos2d.h"#include "controller.h"  //显示菜单的头文件#include "SimpleAudioEngine.h"  //背景音乐播放头文件USING_NS_CC;using namespace CocosDenshion; //声明命名空间,以使用SimpleAudioEngine.hAppDelegate::AppDelegate()  //构造函数{}AppDelegate::~AppDelegate()  //析构函数{//    SimpleAudioEngine::end();}bool AppDelegate::applicationDidFinishLaunching()  //启动程序调用函数{    // initialize director:初始化游戏引擎控制器CCDirector,以便启动游戏引擎    CCDirector *pDirector = CCDirector::sharedDirector();      pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());  //设置场景显示    CCSize screenSize = CCEGLView::sharedOpenGLView()->getFrameSize();  //获取屏幕大小    CCSize designSize = CCSizeMake(480, 320);  //设计屏幕大小    CCFileUtils* pFileUtils = CCFileUtils::sharedFileUtils();//暂时为搞明白该类        if (screenSize.height > 320)  //    {        CCSize resourceSize = CCSizeMake(960, 640);        std::vector searchPaths;        searchPaths.push_back("hd");        pFileUtils->setSearchPaths(searchPaths);        pDirector->setContentScaleFactor(resourceSize.height/designSize.height);//设置屏幕匹配场景    }    CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder);    // turn on display FPS    pDirector->setDisplayStats(true);//设置启用FPS显示    // set FPS. the default value is 1.0/60 if you don't call this    pDirector->setAnimationInterval(1.0 / 60);  //设置绘图间隔,即屏幕刷新频率    CCScene * pScene = CCScene::create();  //创建场景    CCLayer * pLayer = new TestController();  //创建一个TestController层,用于显示菜单    pLayer->autorelease();  //使用回收池释放层的内存    pScene->addChild(pLayer);  //将层加入到场景中    pDirector->runWith<span>本文来源gaodai#ma#com搞*代#码9网#</span>Scene(pScene);  //运行该场景    return true;}// This function will be called when the app is inactive. When comes a phone call,it's be invoked toovoid AppDelegate::applicationDidEnterBackground()  //程序进入后台时调用该方法{    CCDirector::sharedDirector()->stopAnimation();  //暂停动作    SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();  //暂停背景音乐    SimpleAudioEngine::sharedEngine()->pauseAllEffects();  //暂停所有事件}// this function will be called when the app is active againvoid AppDelegate::applicationWillEnterForeground()  //程序返回前台使用该方法{    CCDirector::sharedDirector()->startAnimation();  //重启动作    SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();  //回复背景音乐    SimpleAudioEngine::sharedEngine()->resumeAllEffects();  //回复所有事件}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Cocos2d-x学习笔记(17)(TestCpp源码分析-1)
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址