向cocos攻城狮进军之HelloWorld

前端之家收集整理的这篇文章主要介绍了向cocos攻城狮进军之HelloWorld前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1:当我们找到一个项目的时候打开编译不通过,有可能是因为版本不同的原因,那么我们如何查看cocos2d-x源码版本
在工程目录当中libcocos2d下面\cocos2dx\cocos2d.cpp

  1. #include "cocos2d.h"
  2.  
  3. NS_CC_BEGIN
  4.  
  5. const char* cocos2dVersion()
  6. {
  7. return "cocos2d-x 2.2.6";
  8. }
  9.  
  10. NS_CC_END
  11.  
  12. 2:工程的入口:
  13. main.cpp下面

int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);

  1. // create the application instance
  2. AppDelegate app;
  3. CCEGLView* eglView = CCEGLView::sharedOpenGLView();
  4. eglView->setViewName("myHello");
  5. eglView->setFrameSize(480,320);
  6. return CCApplication::sharedApplication()->run();

}

  1.  

工程的真正入口是在:

  1. bool AppDelegate::applicationDidFinishLaunching() {
  2. // initialize director
  3. CCDirector* pDirector = CCDirector::sharedDirector();
  4. CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
  5. pDirector->setOpenGLView(pEGLView);
  6. // turn on display FPS
  7. pDirector->setDisplayStats(true);
  8. // set FPS. the default value is 1.0/60 if you don't call this
  9. pDirector->setAnimationInterval(1.0 / 60);
  10. // create a scene. it's an autorelease object
  11. CCScene *pScene = HelloWorld::scene();
  12. // run
  13. pDirector->runWithScene(pScene);
  14. return true;
  15. }

几个重要的梳理点:
AppDelegate 私有继承 CCApplication
CCApplication public继承 CCApplicationProtocol
CCApplicationProtocol定义了接口
CCApplication 各个平台的不同逻辑
AppDelegate仅实现CCApplicationProtocol 里的接口,实现了代理功能的局限化。
这里其实用到了代理模式,代理模式的改进;

AppDelegate app;
CCApplication::sharedApplication()->run()

在CCApplication::sharedApplication()里面会把 app对象赋给
CCApplication * sm_pSharedApplication;
这里: 子类对象赋给父类
父类调用Run函数。Run函数里面调用了applicationDidFinishLaunching()函数,这个函数由AppDelegate实现,整个过程用到了多态的机制。

3:游戏逻辑结构:

一个导演同一时间只能运行一个场景, 一个场景当中, 可以同时加载多个层,
一个层同可以可载多个精灵。层中亦可以加层。

4:锚点:
锚点影响缩放。影响旋转。
锚点好比一个钉子,你要把一张纸钉在墙上,这个钉子你可以放在纸中间,也可以放在纸的左上角右下角等等。总之,锚点不是重心。
上图就好比一张纸,如果你的钉子在左下角,那么左下角是锚点,你把钉子在左下角盯住,那么这张纸旋转也是围绕左下角这个点旋转。

猜你在找的Cocos2d-x相关文章