zoukankan      html  css  js  c++  java
  • 分析cocos2d-x中的CrystalCraze示例游戏

    cocos2d-x自带了不少示例,以及几个比较简单的游戏,不过这些游戏都是用javascript binding(SpiderMonkey)做的,所以我猜测javascript binding可能是cocos2d-x开发游戏的主流模式,优点是:

    • 游戏逻辑用javascript,开发效率高,无需编译直接跑
    • 因为使用了javascript binding,实际跑的还是C++代码,性能不容小觑
    • javascript binding使用的api与cocos2d-html5一致,以后向cocos2d-html5移植转换成纯网页游戏的成本接近于0

    CrystalCraze用的系统自然也是js binding。

    一、代码目录结构

    cocos2d-x
        samples
            Javascript
                *1 CrystalCraze
                    Classes
                    proj.android
                    proj.ios
                    proj.win32
                Shared
                    games
                        *2 CrystalCraze
                            CrystalCraze.ccbproj
                            Images
                            Platform
                            Published-Android
                            Published-iOS
                            Resources
        scripting
            javascript
                bindings
                    *3 js
                        jsb.js
                        jsb_chipmunk.js
                        jsb_chipmunk_constants.js
                        jsb_cocos2d.js
                        jsb_cocos2d_constants.js
                        jsb_cocos2d_extension.js
                        jsb_cocosbuilder.js
                        jsb_debugger.js
                        jsb_opengl.js
                        jsb_opengl_constants.js
                        jsb_sys.js
                        main.debug.js

    主要是打*的三个目录:

    1. 游戏各平台的工程文件,以及C++启动代码(用来初始化引擎,以及启动js脚本引擎)
    2. 游戏资源,包括图片,声音,场景文件(ccb,)以及包含游戏主逻辑的javascript文件
    3. javascript binding的接口 - 运行时拷贝到同一目录下去。

    二、主要代码文件及流程

    1. 首先build的时候,会把资源、jsbinding都拷贝到游戏目标目录下。
    2. 在AppDelegate.cpp中启动引擎,设置好读取资源的文件夹,然后启动js binding引擎,跑main.js
    3. main.js读取MainScene.ccb场景,运行MainScene.js进入主场景
    4. 选取Play之后,读取GameScene.ccb场景,并运行GameScene.js进行游戏。

    MainScene和GameScene是两个游戏画面,其逻辑分别由MainScene.js和GameScene.js控制,里面包含游戏处理逻辑,和事件响应函数。

    三、一些文件类型

    • .ccbproj: CocosBuilder项目文件,用来管理场景文件(ccb)和其他资源(CocosBuilder目前只支持Mac)
    • .ccb/.ccbi: CocosBuilder场景文件,可以被引擎的BuilderReader直接读入
    • .plist: Property List,属性列表文件,它是一种用来存储串行化后的对象的文件,文件是xml格式的。
    • .ogg: OGG Vorbis, 是一种新的音频压缩格式,类似于MP3等的音乐格式。它是完全免费、开放和没有专利限制的,而且支持多声道
    • .psd:  Adobe Photoshop Document file.
    • .md: Markdown file
  • 相关阅读:
    sscanf 函数
    hdu 1232 畅通工程 解题报告
    hdu 2048 神、上帝以及老天爷 解题报告
    hdu 2049 不容易系列之(4)——考新郎 解题报告
    hdu 2013 蟠桃记 解题报告
    hdu 2093 考试排名 解题报告
    分糖果 的解题报告
    hdu 2017 字符串统计 解题报告
    表的连接方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN【转】
    sort_area_size设置【转】
  • 原文地址:https://www.cnblogs.com/baiyanhuang/p/3199448.html
Copyright © 2011-2022 走看看