Cocos2dx游戏开发系列笔记2:一个刚创建的cocos2dx中的demo里都有什么

懒骨头(http://blog.csdn.net/iamlazybone  QQ124774397 青岛 )


烦人的环境终于ok了,改了改文本,换了换图片资源,还是能在手机里运行。ok,关了Eclipse,去vs中看看吧。

虽然是根老骨头了,但还真没怎么用C++,以前接触过点Java的开发框架,估计大差不差。


在VS2012中打开用python命令新建的LazyGame项目。

--------------------

LazyGame

-Classes

-AppDelegate.cpp

-AppDelegate.h

-HelloWorldScene.cpp

-HelloWorldScene.h

-win32

-main.cpp

-main.h

外部依赖类

-------------------

main.cpp应该是入口类

里面定义了窗口的标题eglView->setViewName("LazyGame");

和窗口的大小eglView->setFrameSize(960, 540);

还有AppDelegate的句柄,这个类应该是Cocos2dx主要的控制类。


AppDelegate.cpp主要控制类

里面有三个方法:

applicationDidFinishLaunching();初始化方法,比如Scene的初始化

applicationDidEnterBackground();游戏临时中断的处理

applicationWillEnterForeground();由中断状态再次进入游戏的处理

相关方法:

CCDirector* pDirector = CCDirector::sharedDirector();初始化导演类

pDirector->setDisplayStats(true);显示FPS

pDirector->setAnimationInterval(1.0 / 60);设置刷新率

CCScene *pScene = HelloWorld::scene();初始化舞台

pDirector->runWithScene(pScene);显示当前舞台


再来看下HelloWorldScene.cpp

有scene添加方法、初始化方法、还有按钮回调事件

我感觉HelloWorld应该是一个层,而非舞台。

scene->addChild(layer);加入到舞台中

初始化init()中:

首先调用父类的init

CCDirector::sharedDirector()->getVisibleSize();可视区域大小

CCDirector::sharedDirector()->getVisibleOrigin();可视区域原点坐标

创建一个图片按钮:参数(常态图,按下图,句柄,回调方法)

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));

看来cocos2dx设置控件时的坐标,是以左下角为原点,并且设置的是item中心点的位置。所以要减去item的宽高。

然后把创建的item加到一个Menu里,

CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);

pMenu->setPosition(CCPointZero);然后设置(0,0)点。
this->addChild(pMenu, 1);最后添加到舞台中。

同样的方法加入一个label,同样是创建,设位置,添加

CCLabelTTF* pLabel = CCLabelTTF::create("LazyGame", "Arial", 24);

同样的,再加入一个精灵CCSprie

CCSprite* pSprite = CCSprite::create("HelloWorld.png");

最后是创建按钮MenuItem时,加入的回调方法

void HelloWorld::menuCloseCallback(CCObject* pSender)
CCDirector::sharedDirector()->end();


一个最最原始的Demo就这些东西。骨头还有很多问题没弄明白,和C++还有框架相关的,没关系,一点点来。



常用的快捷键:

Tab 快速完成

Shift + Alt + Enter 全屏

Ctrl + K,Ctrl+D 格式化代码


------------------- 飞船起飞--------------------    

Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo-中

Cocos2dx游戏开发系列笔记12:一个横版拳击游戏Demo-上

Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇

Cocos2dx游戏开发系列笔记10:解刨《战神传说》

Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题

Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的

Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)

Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上

Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》

Cocos2dx游戏开发系列笔记4:怎样新加一个Scene类?

Cocos2dx游戏开发系列笔记3:牛刀小试->忍者飞镖射幽灵的Demo

Cocos2dx游戏开发系列笔记2:一个刚创建的cocos2dx中的demo里都有什么

Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin+vs2012游戏开发环境搭建

-------------------- 飞船降落-------------------- 


最后,骨头介绍一下陪在身边的哲哲(右边就是低调的哲哲)

哲哲,小名 YIYI ,手工爱好者,文艺范,手艺人,《YiYiの妙舍》创始人,很有自己想法。

 



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值