zoukankan      html  css  js  c++  java
  • cocos2dx学习笔记-整体结构

    版本与平台

    • 源码版本:3.10
    • 平台:mac,ios

    目录结构

    从官方下载到cocos2dx最新版本解压以后,可以看到包的目录结构如下图所示。可以看到cocos源码结构清晰,例子完善,对于初学者来说,大大降低了学习的难度。

    按照官方文档环境部署,并创建一个工程,在XCODE打开。

    打开以后的工程结构如下图所示。

    • Classes 包含所有cocos的CPP代码
    • Resources 包含资源文件,图片、字体
    • cocos2d_libs.xcodeproj cocos2d引擎的源码,编译以后会生成libcocos2d iOS.a,为了节约硬盘,可以将此工程删除,直接将libcocos2d iOS.a引用到工程,所有项目共用一个lib和头文件,可以给128G Mac用户节约很多硬盘空间。
    • Frameworks IOS用到的Frameworks。
    • iOS iOS AppController、main、RootViewController代码。

    框架结构

    在源码的docs目录下有上图所示的框架结构图,从下往上看,

    • cocos2d支持目前大部分mobile、PC的系统,以及web平台。
    • 在底层,包括C++、JS两种引擎实现,JS引擎是提供cocos2d-html5实现的,运行在浏览器环境中,整个引擎用js完全重写,使用WebGL和Canvas作为图形引擎。
    • 在引擎上面,有JS API、Lua API以及C++API,这些API其实都是一样的,实现语言不同。其中JS API比较特殊,包括JSB和cocos2d-html5,JSB是采用firefox的SpiderMonkey作为js解释引擎在cocos2d-c++的基础上绑定。而Cocos2d-html5和JSB的实现不一样,但是API和JSB完全兼容,这样就能实现一套代码既能运行在IOS、Android(Cocos2dx JSB),又能运行在浏览器里)。
    • Lua API也是通过Lua脚本的解释引擎实现Lua与C++的绑定。而C++ API则直接由cocos2d C++提供。
    • 最上层则是我们运行的游戏程序了。

    cocos2d-js与cocos2d-lua

    在实际开发中,大部分都是使用cocos+js或cocos+lua来进行开发,对于这两种脚本语言要怎么选择呢?通过了解总结出以下几个优缺点,供看官自行选择。

    1. JS Binding最大的优势,就是可以直接通过cocos2d-x html5移植到网页;
    2. JS更容易实现面向对象,唯一的缺点是没有继承,调用父类方法等原生方法,这些需要用原型链来模拟实现,好在cocos2d-jsbinding已经帮我们实现了继承等功能,实际用的时候完全可以想面向对象语言去实现类的继承,重载,重写,父类调用等功能。
    3. Lua直接编译成字节码效率比 JS高 ;
    4. Lua就是作为嵌入式语言来设计的,所以与CC++非常容易交互;与Java/OC的交互,Lua也可以绕过CC++层直接交互,在集成第三方SDK、与IOS、Android原生交互时会省事。

    官方Demo

    相对于干巴巴的API文档,看官方提供的Demo对于初学者来说是更好的学习方法。在tests目录下有c++、JS、LuaDemo源码及在各平台的项目工程,直接打开编译以后可以看到bin目录下可执行程序。运行起来的界面如下图,

    点击图中的按钮可以看到实际的运行效果,再去找源码参考,是非常有效的学习方法。

    cocos2d-x整体情况简单介绍到此,接下来将通过源码对内部实现进行分析。

  • 相关阅读:
    bootstrap不同屏幕区分数值
    jq星星评分
    大話西遊
    HDU 5353 Average 贪心
    HDU 5358 First One 数学+尺取法
    生活感受
    HDU 4372 Count the Buildings 组合数学
    暑假集训-合训第九场
    一些资料
    多校-HDU 5351 MZL's Border 数学规律
  • 原文地址:https://www.cnblogs.com/zhiqli/p/5918097.html
Copyright © 2011-2022 走看看