加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

向cocos攻城狮进军之HelloWorld

发布时间:2020-12-14 21:17:29 所属栏目:百科 来源:网络整理
导读:1:当我们找到一个项目的时候打开编译不通过,有可能是因为版本不同的原因,那么我们如何查看cocos2d-x源码版本 在工程目录当中libcocos2d下面cocos2dxcocos2d.cpp #include "cocos2d.h" NS_CC_BEGIN const char * cocos2dVersion(){ return "cocos2d-x 2.

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

#include "cocos2d.h"

NS_CC_BEGIN

const char* cocos2dVersion()
{
    return "cocos2d-x 2.2.6";
}

NS_CC_END

2:工程的入口:
main.cpp下面

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

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

}

 
 

工程的真正入口是在:

bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
CCDirector* pDirector = CCDirector::sharedDirector();
CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
pDirector->setOpenGLView(pEGLView);
// turn on display FPS
pDirector->setDisplayStats(true);
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
// create a scene. it's an autorelease object
CCScene *pScene = HelloWorld::scene();
// run
pDirector->runWithScene(pScene);
return true;
}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读