QuickCocos使用总结

来源:互联网 发布:金字塔程序化交易软件 编辑:程序博客网 时间:2024/05/29 09:39

QuickCocos使用总结


开发环境:Quick3.6.2社区版,CocosStudio2.0.6,Windows10,VS2013

在新公司开发的新项目使用的是quick+studio制作消除游戏,因为是全新的引擎和全新的UI编辑器,使用上还是有些坑和API的,在此记录。Cocos 资料大全里有各个版本的API和引擎等的下载。

安卓打包环境:
- SDK 20
- NDK ndk-r9d
- JDK 1.7
- quick 3.6.2(社区版)
- CocosStudio 2.0.6
- apache-ant-1.9.4-bin
- adt-bundle-windows-x86_64-20140702

csb文件加载

    local _node = cc.uiloader:load(filename) -- 加载csb文件    cc.uiloader:seekNodeByTag(_node ,1) -- 通过节点tag获取节点    -- 这里源码部分有错。源码中 uiloader:seekNodeByName这个方法里name == parent.name改为name == parent:getName()    cc.uiloader:seekNodeByName(_node ,"node1") --通过节点名字获取节点

按钮监听

    local _musicBtn = cc.uiloader:seekNodeByName(self._mainNode,"mMusicBtn") -- 获取button的node    _musicBtn:addTouchEventListener(function(sender,eventType)        if eventType==ccui.TouchEventType.began then            if game.SoundOn==true then                audio.playSound(GAME_SOUND.tapButton) --audio是quick中控制音乐播放api            end        elseif eventType==ccui.TouchEventType.ended then            if callBackFunc then                callBackFunc()            end        end    end) --eventType类型在DeprecatedUIEnum.lua中

进度条和动画加载

    display.addImageAsync(imagePath, callback) --异步加载png,jpg,plist等    display.addSpriteFrames("disapearAni.plist", "disapearAni.png")--将plist放入内存    local frames = display.newFrames("disappear%02d.png",1,6)--用plist制作动画    local animation = display.newAnimation(frames,0.6/6)     --0.6s里面播放6帧    display.setAnimationCache("disappear",animation) --设置动画别名可直接调用    sprite:playAnimationOnce(display.getAnimationCache("disappear"),true)--Sprite:playAnimationOnce(animation, removeWhenFinished, onComplete, delay)

帧动画

    self._mainRoleNode =cc.CSLoader:createNode("Luffy.csb"):addTo(self)    self._mainRoleAni = cc.CSLoader:createTimeline("Luffy.csb")    self._mainRoleNode:runAction(self._mainRoleAni)    self._mainRoleAni:gotoFrameAndPlay(frameBegin,frameEnd,true)-- frameBegin动画开始帧,frameEnd动画结束帧,true是否循环。目前只找到这个方法播放动画。用延迟来控制动画播放后的回调函数(很希望能找到动画结束的回调啊)

控件方法

    -- 输入框editBox     local editBox2 = cc.ui.UIInput.new({        image = "EditBoxBg.png",        size = cc.size(400, 96),        x = display.cx,        y = display.cy,        listener = function(event, editbox)            if event == "began" then                self:onEditBoxBegan(editbox)            elseif event == "ended" then                self:onEditBoxEnded(editbox)            elseif event == "return" then                self:onEditBoxReturn(editbox)            elseif event == "changed" then                self:onEditBoxChanged(editbox)            else                printf("EditBox event %s", tostring(event))            end        end    })    editBox2:setReturnType(cc.KEYBOARD_RETURNTYPE_SEND)    self:addChild(editBox2)    -- 按钮切换三态图片    loadTextureNormal(name, type) --替换正常显示的效果    loadTexturePressed(name, type)--替换按下显示的效果    loadTextureDisabled(name, type)--替换禁用的效果    --type==0,表示从本地加载,type==1,表示从缓存的cache也就是打包生成的plist里加载    -- 经验条    local expBar = cc.uiloader:seekNodeByTag(self._mainNode,301)    expBar:setPercent(20)    -- 文本Label    local defLabel = cc.uiloader:seekNodeByTag(self._mainNode,203)    defLabel:setString("10")    -- 图片置灰    display.newGraySprite(filename, params) --params在filter.lua中可查到
3 0