改进cocos2dx中lua读ccb的方法】的更多相关文章

cocos2dx自带的CCBProxy真弱,还好提供了一个CCBReaderLoader.lua,但是也不好用, 于是修改了一下CCBReaderLoader,下面直接贴代码了. function NewCCBuilderReaderLoad(strFilePath,proxy,owner) if nil == proxy then return end --print("ccbnew") local ccbReader = proxy:createCCBReader() local…
刚开始接触cocos2d-x 下的Lua编程,主要参看了李华明大神的博客中的介绍,http://blog.csdn.net/xiaominghimi/article/category/1155088 大概了解了一下,下面这篇博客主要记录一下如何在Cocos2d-x项目中使用Lua进行开发,还有在Lua中如何使用自定义的精灵类(Lua脚本和自创建类之间的访问)这两个内容:这些内容在李华明大神的博客中都有详细的介绍,个人看我觉得有点乱,所以写下这篇入门博客. 一.如何在Cocos2d-x项目中使用L…
1.cocos2dx获取设备语言的方法:CCApplication::sharedApplication()->getCurrentLanguage() 2.cocos2dx 2.1.4支持识别的语言可在ccLanguageType中查看.以下是ccLanguageType的所以枚举语言. kLanguageEnglish = 0, kLanguageChinese, kLanguageFrench, kLanguageItalian, kLanguageGerman, kLanguageSpa…
1.一个游戏中有且只有一个导演,但是至少有一个场景 2.场景是游戏元素节点数的根节点,也可以理解为该场景下的渲染树的根节点 3.场景是一个容器,包含了该场景下的所有游戏元素,比如层,精灵 4.场景是导演用来控制游戏流程用的,例如如何开始场景,什么时候切换场景,什么条件下结束场景等等 5.与场景有关的API操作: 运行场景:runWithScene(Scene* scene); 启动游戏,并运行scene场景.本方法在主程序第一次启动主场景的时候调用.如果已有正在运行的场景则不能调用该方法:会调用…
游戏中通常需要将常用的资源如:声音,图片,plist文件,提前加载进内存,以加快游戏的流畅度 1.预加载声音: SimpleAudioEngine::getInstance()->preloadBackgroundMusic("boom.mp3"); 加载之后就可以直接播放:SimpleAudioEngine::getInstance()->playBackgroundMusic("boom.mp3"); 2.预加载图片资源: 图片资源的加载分为同步加载…
准备的过程 1.打开TextruePacker软件 2.把游戏中要使用的图片拖到TextruePacker里面,TextruePacker会自动帮我们排序,让所有小图变成一个大图 3.点击Publish-会输出两个文件 MyTexture.plist  //里面记录了所有小图在大图中的位置和属性,cocos可以根据这些信息在MyTexture.png大图中找到所需要的小图 MyTexture.png  //一张容纳了所有小图的大图 4.在GameScene.cpp的init方法里面写 //加载p…
一.如果要让某类实例对象要连续执行某些语句(比如让每个Block实例从运行框最右边移动到最左边) 要在Block类中增加一些东西 1.先在其.cpp文件的init()函数中执行scheduleUpdate()方法. 2.然后在.h中声明一个虚拟的函数update,并在.cpp文件中定义update,当init中执行scheduleUpdate()时,会不断地调用update函数,里面的语句也不断地被执行,直到执行unscheduleUpdate()时停止调用update()函数,unschedu…
记得把extern.lua拷贝到你的资源目录,这里要用到 require "extern" MyLayer = class("MyLayer", function(fileName) return CCSprite:create(fileName) end ) function MyLayer.CreateWithFile(fileName) local o = MyLayer.new(fileName) o.m_nA = return o end function…
init()和onEnter()这两个方法都是写实例化对象的类(比如继承自Node的一些类等等)的时候用到的方法. 一般都是public类型下面的 bool init(); void onEnter(); 两个方法在实现的时候都要先执行父类方法,比如 Node::init(); Node::onEnter(); 注意: 1.init()在类的初始化时只会调用一次. 2.onEnter在该类被载入场景的时候被调用,可能会发生多次. 3.Node* nd = new Node(); 这种情况下,只会…
比如要让角色跳起来 1.如果是用到物理引擎,那么在物理世界中,可以用 hero->getPhysicsBody()->setVelocity(Vec2(0, 400));  //给主角一个向上的速度 如果不想让主角一点就跳,而是点完后等执行完一个跳跃的动作后落到地面后再跳的话,可以给这个语句加一个条件判断执行,这个语句里面的+5是关键 if (_hero->getPositionY()<_positionY+_hero->getContentSize().height/2+5…