Cocos2d-x 学习随记之一 hello,world工程注释!!

来源:互联网 发布:假设有二维数组a6*8 编辑:程序博客网 时间:2024/05/16 07:07

       空闲的时间学习一下Cocos2d,顺手记录一些逝去的青春。。。。。

代码段如下:主要学习工程的流程以及注释解释。。。

//main.cpp 函数入口
#include "main.h"#include "AppDelegate.h"#include "CCEGLView.h"USING_NS_CC;int APIENTRY _tWinMain(HINSTANCE hInstance,                       HINSTANCE hPrevInstance,                       LPTSTR    lpCmdLine,                       int       nCmdShow){    UNREFERENCED_PARAMETER(hPrevInstance);    UNREFERENCED_PARAMETER(lpCmdLine);    // 创建应用程序实例    AppDelegate app;    CCEGLView* eglView = CCEGLView::sharedOpenGLView();//设置标题栏的名称    eglView->setViewName("mythcpp");//设置窗口大小    eglView->setFrameSize(480, 320);    return CCApplication::sharedApplication()->run();}
//main.h头文件,这些都有脚本自动生成
#ifndef __MAIN_H__#define __MAIN_H__#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers// Windows Header Files:#include <windows.h>#include <tchar.h>// C RunTime Header Files  #include "CCStdC.h"#endif    // __MAIN_H__

//AppDelegate.cpp 主要是导演类的定义以场景的管理,都在这里处理。
#include "AppDelegate.h"#include "HelloWorldScene.h"USING_NS_CC;AppDelegate::AppDelegate() {//AppDelegate构造函数}AppDelegate::~AppDelegate() {//AppDelegate析构函数}// 程序启动后调用此方法bool AppDelegate::applicationDidFinishLaunching() {    // 初始化导演类    CCDirector* pDirector = CCDirector::sharedDirector();    CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();//设置OpenGL视图    pDirector->setOpenGLView(pEGLView);    // 设置是否打开FPS、0或flase为不打开    pDirector->setDisplayStats(true);    // 设置FPS默认值,为每秒60帧    pDirector->setAnimationInterval(1.0 / 60);    // 创建一个场景,其使用智能指针进行内存管理,引用计数器方式    CCScene *pScene = HelloWorld::scene();    // 运行场景,真正的游戏开始。    pDirector->runWithScene(pScene);    return true;}// 当进入后台,运行此方法,void AppDelegate::applicationDidEnterBackground() {    CCDirector::sharedDirector()->stopAnimation();    // 如果有声音,请进行声音暂停。    // SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();}// 恢复游戏调用此方法。void AppDelegate::applicationWillEnterForeground() {    CCDirector::sharedDirector()->startAnimation();    //恢复声音    // SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();}
//AppDelegate.h 
#ifndef  _APP_DELEGATE_H_#define  _APP_DELEGATE_H_#include "cocos2d.h"/**@brief    The cocos2d Application.The reason for implement as private inheritance is to hide some interface call by CCDirector.*/class  AppDelegate : private cocos2d::CCApplication{public:    AppDelegate();    virtual ~AppDelegate();    /**    @brief    Implement CCDirector and CCScene init code here.    @return true    Initialize success, app continue.    @return false   Initialize failed, app terminate.    */    virtual bool applicationDidFinishLaunching();    /**    @brief  The function be called when the application enter background    @param  the pointer of the application    */    virtual void applicationDidEnterBackground();    /**    @brief  The function be called when the application enter foreground    @param  the pointer of the application    */    virtual void applicationWillEnterForeground();};#endif // _APP_DELEGATE_H_

//HelloWorldScene.cpp helloWorld场景的实现
#include "HelloWorldScene.h"using namespace boost;USING_NS_CC;CCScene* HelloWorld::scene(){  //‘场景’是一个自动释放的对象    CCScene *scene = CCScene::create();        // 'layer' 是一个自动释放的对象    HelloWorld *layer = HelloWorld::create();   // 添加 图层 到场景    scene->addChild(layer);    // return the scene//返回场景    return scene;}// 在这里进行场景的一系列的初始化bool HelloWorld::init(){    //////////////////////////////    // 1. super init first    if ( !CCLayer::init() )    {        return false;    }        CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();    /////////////////////////////    // 2. 以“X”的形象,这是点击退出程序添加一个菜单项     //你可以修改它。    // 添加一个退出关闭按钮,它是一个自动释放的对象    CCMenuItemImage *pCloseItem = CCMenuItemImage::create(                                        "CloseNormal.png",                                        "CloseSelected.png",                                        this,                                        menu_selector(HelloWorld::menuCloseCallback));    pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 ,                                origin.y + pCloseItem->getContentSize().height/2));    // 创建菜单,它是一个自动释放的对象    CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);    pMenu->setPosition(CCPointZero);    this->addChild(pMenu, 1);    /////////////////////////////    // 3. 添加你的代码....    //添加一个标签以显示hello world    // 创建并初进行始化标签        //CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24);    CCLabelTTF* pLabel = CCLabelTTF::create("Hello World!!!", "Arial", 48);    // 在场景中心位置显示标签    pLabel->setPosition(ccp(origin.x + visibleSize.width/2,                            origin.y + visibleSize.height - pLabel->getContentSize().height));    // 添加标签到这一层    this->addChild(pLabel, 1);    // 创建hello world背景图    CCSprite* pSprite = CCSprite::create("HelloWorld.png");    // 在场景中心位置显示    pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));    //添加helloWorld精灵到这一层    this->addChild(pSprite, 0);        return true;}void HelloWorld::menuCloseCallback(CCObject* pSender){#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");#else    CCDirector::sharedDirector()->end();#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)    exit(0);#endif#endif}

//"HelloWorldScene.h"
#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"#include "boost_head.h"class HelloWorld : public cocos2d::CCLayer{public:    //初始化声明virtual bool init();      // 返回实例的指针    static cocos2d::CCScene* scene();        // 一个选择回调函数    void menuCloseCallback(CCObject* pSender);        // 内存回收    CREATE_FUNC(HelloWorld);};#endif // __HELLOWORLD_SCENE_H__



0 0
原创粉丝点击