小怪物项目重制计划第一天

上周完成了shell脚本的学习,现在能看懂一些基本的脚本内容了。

然后是从原理上了解了jsb的相关问题,使用spidermonkey自带的脚本,配置好python和其他相关库的路径,就可以自动生成c++绑定之后的接口文件,从而实现js和c++的联合开发。

今天是开始实践的第一天,目标是从一个空项目开始,搭建js开发环境,然后绑定一个SDK,在DEMO中调用SDK中的接口完成简单的初始化和交互功能。

首先,我在项目中导入了cocos2d-html5_2.1.4,以及cocos2d-x 2.1.4, 为了进行chrome的混合调试以及部分接口的调用。然后建立了ios工程。

打开ios项目之后,我在项目中导入了spidermonkey中的bindings文件夹,为了在项目中注册其中的接口。

在AppDelegate的程序启动入口中,注册脚本核心ScriptingCore,并添加项目中用到的相关库文件。然后注册脚本引擎。

引用库中加入了cocos2dx.xcodeproj.

通过 ScriptingCore::getInstance()->runScript("main.js"); 开始调用入口脚本文件。

在这个入口脚本文件里,原来的代码里用到了(function(){})()这个能使匿名函数立即执行的用法。研究了一下这个看起来比较奇怪的用法,思路是:前面的一对小括号会返回括号里的函数对象本身,相当于 var abc = function(){};的方式,后一对小括号相当于空的参数列表,即abc()的形式,可使函数立即执行。

因为这里是游戏入口,主函数就立即执行了。

在main.js中,加载项目所需的全部js文件,使用require("路径+文件名");的形式,为了加载绑定c++后的JS库,需要require一下jsb.js文件。

然后调用GameClasses目录下的GameManager类,这是游戏mainloop的管理类,目前理解到的功能是做程序的后台计时,以及其他一些全局函数。

这里开始使用了Defines.js,管理一些全局的定义。然后使用了管理命名空间的namespace.js,里面将常用的几个类,例如cc.Defines改写成简称,如 var Defines = cc.Defines。


这里首先被调用的是_startGame方法,在方法内设置FPS并打开显示开关,然后就能调用runWithScene打开目标scene了。

在scene文件中,onEnter方法里可以直接打开GUI层窗口。

Scene_MainMenu:继承cocos2d的scene类,管理主菜单的scene文件。在上面挂一个方法,用于外部调用,返回一个scene对象。

这个方法的实现内容是创建一个Scene_MainMenu对象,然后清空上面的schedule,挂上update方法。

建立一个窗口类GUIMainMenu用于scene文件的内部调用,这个类继承于GUIWindow,而且都在cc命名空间下。

这里为了整理资源路径,移动了info和pch的路径,这时候在project setting里面搜索一下关键字手动修改路径就可以了。


#include "../../../../petMania_self/wrapper/Packer/CJsonReader.h"

#include "../../../../petMania_self/wrapper/file/FileMgr.h"


在引擎中加入了这部分引用 还不太明白。应该是内更新相关。


第一天完成了项目建立的基本框架,但还是没能把项目在xcode和chrome上跑起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值