Cocos2d-x随记(1)-HelloWorld

接触cocos2d-x有一些时间了,但是还是不能说完全对其深入了解。毕竟之前也没学过C++,现在也算是了解了一些。写下点滴记录一下自己的历程。嘿嘿。

首先,创建一个cocos2d-x的项目。

我的创建方法比较偷懒了,直接打开cocos2d-x自带的解决方案的文件,然后右击解决方案,选择添加->新建项目

项目创建好了之后设置启动项->运行。ok!

这次主要是记录个人对helloworld的一些翻译和自己的解释了。

.h文件

#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
 

#include "cocos2d.h"
 

#include"SimpleAudioEngine.h"
 

class HelloWorld : publiccocos2d::CCLayer
{
public:
    virtual bool init();  //初始化方法,返回布尔值
 

    static cocos2d::CCScene* scene();//单例
 

    void menuCloseCallback(CCObject* pSender);//按钮回调方法
 

    CREATE_FUNC(HelloWorld);//autorelese构造方法
};
 

#endif  // __HELLOWORLD_SCENE_H__


.cpp文件

#include "HelloWorldScene.h"

using namespace cocos2d;

CCScene* HelloWorld::scene()
{
    CCScene * scene = NULL;//定义一个场景指针
    do 
    {
        scene = CCScene::create();//使用create创建场景,带有autorelease方法后面基本就不用管释放的问题了,嘿嘿。
        CC_BREAK_IF(! scene);//判断场景是否创建成功,没有成功就不用做后面的咯。

        HelloWorld *layer = HelloWorld::create();//create一个层,当然也是autorelease咯。
        CC_BREAK_IF(! layer);//对层进行判断,没创建成功的话,后面也一样不用做啦!

        scene->addChild(layer);//层建好了,当然就得加到场景里面了,不然怎么看到层的东西呢,嘿嘿!
    } while (0);

    return scene;//返回场景
}

bool HelloWorld::init()//实现初始化方法,就是一开始给我们看到的东西放在这里面咯。初始嘛~~
{
    bool bRet = false;
    do 
    {
        CC_BREAK_IF(! CCLayer::init());//判断咯,没有层还怎么放东西呢~

        CCMenuItemImage *pCloseItem = CCMenuItemImage::create(//创建一个CCMenuItemImage按钮,又是create方法呢,autorelease哦,哈哈~~
            "CloseNormal.png",//通常情况下显示这个png,NormalImage咯
            "CloseSelected.png",//被点了就会变成这个png的,SelectedImage,嗯,很明显的单词啊。
            this,
            menu_selector(HelloWorld::menuCloseCallback));//回调方法
        CC_BREAK_IF(! pCloseItem);//判断一下按钮创建成功没有~~~

        pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));//给按钮放到你想放倒的位子去,定位。(CCDirector::sharedDirector()->getWinSize():这个就是获取窗口大小的方法)

        CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);//创建一个菜单来放按钮,有点像餐馆的菜单的感觉
        pMenu->setPosition(CCPointZero);//给菜单定个位
        CC_BREAK_IF(! pMenu);//又是判断

        this->addChild(pMenu, 1);//把菜单加到层上去了,这下就可以在层上看到按钮,也能点击按钮触发事件。(我会告诉你,按钮不放到菜单里面直接加到层上点上去是没有效果的么?)

        CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24);//create一个标签say“hello world”
        CC_BREAK_IF(! pLabel);//还是判断

        CCSize size = CCDirector::sharedDirector()->getWinSize();//前面说了吧,果然是获取窗口大小的方法。
        pLabel->setPosition(ccp(size.width / 2, size.height - 50));//给标签一个位子,总不能什么都放在默认的位子撒

        this->addChild(pLabel, 1);//不加到层上,我们怎么能看到标签呢,是吧!

        CCSprite* pSprite = CCSprite::create("HelloWorld.png");//给层加个精灵
        CC_BREAK_IF(! pSprite);//依旧是判断

        pSprite->setPosition(ccp(size.width/2, size.height/2));//就算是精灵那也得到我们定好的位子去

        this->addChild(pSprite, 0);//快到层里来- -!

        bRet = true;
    } while (0);

    return bRet;//init方法里面返回一个布尔值
}

void HelloWorld::menuCloseCallback(CCObject* pSender)//这就是上面的那个按钮的回调了
{
    CCDirector::sharedDirector()->end();//世界都黑了- -!
}


 

//````````````````````````````````````````````````````````````````以上均是个人拙见,如若有不对之处请各位指正,谢谢!``````````````````````````````````````````````````````````````````````````````````//                             

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值