核心提示:-----------------------------LayerColor--------------------------------local layer = cc.LayerColor:c...
-----------------------------LayerColor-------------------------------- local layer = cc.LayerColor:create(cc.c4b(0, 0, 0, 180)) layer:addChild(layer) ------------------------------Label1-------------------------------- local textContent = cc.Label:createWithTTF("", "2.ttf", fontSize) --字符串、ttf字体文件、字体大小 --ttfLabel = cc.Label:create("", activeLayer:GetTtfFont(), 22) textContent:setTextVerticalAlignment(cc.TextVAlignment.CENTER) --垂直对齐方式 textContent:setTextHorizontalAlignment(cc.TextHAlignment.LEFT) --水平对齐方式 textContent:setDimensions(520, 520) textContent:enableOutline(cc.c4b(87, 0, 0, 255), 1.5) --描边 textContent:setAnchorPoint(cc.p(0,0.5)) --锚点 textContent:setPosition(620, 300) layer:addChild(textContent) ------------------------------Label2-------------------------------- local textContent = cc.Label:create("", "2.ttf", fontSize) --字符串、ttf字体文件、字体大小 textContent:setAlignment(cc.TEXT_ALIGNMENT_LEFT,cc.VERTICAL_TEXT_ALIGNMENT_CENTER) -- textContent:setHorizontalAlignment(1) -- textContent:setVerticalAlignment(1) textContent:setDimensions(520, 520) textContent:setTextColor(cc.c4b(0xff, 0xf6, 0x00, 0xff)) textContent:setVisible(false) textContent:enableBold() textContent:setSkewX(15) textContent:setAdditionalKerning(-2) textContent:enableOutline(cc.c4b(87, 0, 0, 255), 1.5) --描边 textContent:setAnchorPoint(cc.p(0,0.5)) --锚点 textContent:enableShadow(cc.c4b(0, 0, 0, 255), cc.size(0, -1),0) ------------------------------MenuItemSprite-------------------------------- local function callback() --实现内容 end local normalSp = cc.Sprite:create("facebooklike_normal.png") local pressSp = cc.Sprite:create("facebooklike_press.png") local disableSp = cc.Sprite:create("facebooklike_press.png") --或者 -- local normalSp = cc.Scale9Sprite:createWithSpriteFrameName("facebooklike_normal.png")--可以从本地获取也可以从plist文件获取 -- local pressSp = cc.Scale9Sprite:createWithSpriteFrameName("facebooklike_normal.png") -- local normalSp:setContentSize(cc.size(170, 60)) -- local pressSp:setContentSize(cc.size(170, 60)) -- btReg:setNormalImage(btn_normal) -- btReg:setSelectedImage(btn_normal) -- btReg:setDisabledImage(btn_normal) -- btReg:setEnabled(false) local btReg = cc.MenuItemSprite:create(normalSp,pressSp,disableSp) btReg:registerScriptTapHandler(callback) local btMenu = cc.Menu:create(btReg) btMenu:setPosition(720, 75) layer:addChild(btMenu, 2) ------------------------------MenuItemImage-------------------------------- local menuPopupItem = cc.MenuItemImage:create("menu2.png", "menu2.png") menuPopupItem:setPosition(0, 0) menuPopupItem:registerScriptTapHandler(menuCallbackClosePopup) menuPopup = cc.Menu:create(menuPopupItem) menuPopup:setPosition(480.320) menuPopup:setVisible(false) layer:addChild(menuPopup) local function menuCallbackClosePopup() --实现内容 end ------------------------------MenuItemFont、MenuItemLabel-------------------------------- cc.MenuItemFont:setFontName("Times New Roman") cc.MenuItemFont:setFontSize(86) local item1 = cc.MenuItemFont:create("Start") local function menuItem1Callback(sender) cclog("Touch Start Menu Item.") end item1:registerScriptTapHandler(menuItem1Callback) local labelAtlas = cc.LabelAtlas:create("Help","menu/tuffy_bold_italic-charmap.png", 48, 65, string.byte(' ')) local item2 = cc.MenuItemLabel:create(labelAtlas) local function menuItem2Callback(sender) cclog("Touch Help Menu Item.") end item2:registerScriptTapHandler(menuItem2Callback) local mn = cc.Menu:create(item1, item2) mn:alignItemsVertically() layer:addChild(mn) textContent:setPosition(620, 300) layer:addChild(textContent) ------------------------------LabelAtlas-------------------------------- local label = cc.LabelAtlas:_create("HelloWorld", "fonts/tuffy_bold_italic-charmap.png", 48, 66, string.byte(" ")) label:setPosition(cc.p(size.width/2 - label:getContentSize().width / 2,size.height - label:getContentSize().height)) layer:addChild(label, 1) ------------------------------LabelBMFont-------------------------------- local label = cc.LabelBMFont:create("HelloWorld", "fonts/BMFont.fnt") label:setPosition(cc.p(size.width/2,size.height - label:getContentSize().height)) layer:addChild(label, 1) ------------------------------Sprite-------------------------------- local frameCache = cc.SpriteFrameCache:getInstance() frameCache:addSpriteFramesWithFile("SpirteSheet.plist") --第一种 local bgSprite = cc.Sprite:create("facebooklike.png")--从本地获取 bgSprite:initWithFile(activeLayer:addImgFile(string.format("%sac_xz_%d.png", activePath,id))) bgSprite:setPosition(630, 280) btCue1:setLocalZOrder(1) btCue1:setBrightStyle(0)--只有0和1、-1 NONboE = -1,NORMAL = 0,HIGHLIGHT = 1 mainLayer:addChild(bgSprite) --第二种 local tree1 = cc.Sprite:create("tree1.png",cc.rect(604, 38, 302, 295)) tree1:setPosition(cc.p(200,230)) layer:addChild(tree1,0) --第三种 local cache = cc.Director:getInstance():getTextureCache():addImage("tree1.png") local tree2 = cc.Sprite:create() tree2:setTexture(cache) tree2:setTextureRect(cc.rect(73, 72,182,270)) tree2:setPosition(cc.p(500,200)) layer:addChild(tree2,0) --第四种 local hammerSprite = cc.Sprite:createWithSpriteFrameName("cr_hammer_icon_b.png")--从plist文件获取 --hammerSprite:initWithSpriteFrameName("ac_everyday_public_bg.png") hammerSprite:setPosition(150, 220) imgIcon:addChild(hammerSprite, 5) --第五种 local frameCrop = cc.SpriteFrame:create("crop.png", cc.rect(0, 0, 105, 95)) local spriteCrop = cc.Sprite:createWithSpriteFrame(frameCrop); spriteCrop:setPosition(210, 40 ) layerFarm:addChild(spriteCrop) --第六种 local heroSpriteFrame = frameCache:getSpriteFrameByName("hero1.png") local hero1 = cc.Sprite:createWithSpriteFrame(heroSpriteFrame) hero1:setPosition(cc.p(800,200)) layer:addChild(hero1,0) ------------------------------MenuItemSprite-------------------------------- local function callback() --实现内容 end local normalSp = cc.Sprite:create("facebooklike_normal.png") local pressSp = cc.Sprite:create("facebooklike_press.png") local disableSp = cc.Sprite:create("facebooklike_press.png") --或者 -- local normalSp = cc.Scale9Sprite:createWithSpriteFrameName("facebooklike_normal.png")--可以从本地获取也可以从plist文件获取 -- local pressSp = cc.Scale9Sprite:createWithSpriteFrameName("facebooklike_normal.png") -- local normalSp:setContentSize(cc.size(170, 60)) -- local pressSp:setContentSize(cc.size(170, 60)) -- btReg:setNormalImage(btn_normal) -- btReg:setSelectedImage(btn_normal) -- btReg:setDisabledImage(btn_normal) -- btReg:setEnabled(false) local btReg = cc.MenuItemSprite:create(normalSp,pressSp,disableSp) btReg:registerScriptTapHandler(callback) local btMenu = cc.Menu:create(btReg) btMenu:setPosition(720, 75) layer:addChild(btMenu, 2) ------------------------------MenuItemImage-------------------------------- local menuPopupItem = cc.MenuItemImage:create("menu2.png", "menu2.png") menuPopupItem:setPosition(0, 0) menuPopupItem:registerScriptTapHandler(menuCallbackClosePopup) menuPopup = cc.Menu:create(menuPopupItem) menuPopup:setPosition(480.320) menuPopup:setVisible(false) layer:addChild(menuPopup) local function menuCallbackClosePopup() --实现内容 end ------------------------------MenuItemFont、MenuItemLabel-------------------------------- cc.MenuItemFont:setFontName("Times New Roman") cc.MenuItemFont:setFontSize(86) local item1 = cc.MenuItemFont:create("Start") local function menuItem1Callback(sender) cclog("Touch Start Menu Item.") end item1:registerScriptTapHandler(menuItem1Callback) local labelAtlas = cc.LabelAtlas:create("Help","menu/tuffy_bold_italic-charmap.png", 48, 65, string.byte(' ')) local item2 = cc.MenuItemLabel:create(labelAtlas) local function menuItem2Callback(sender) cclog("Touch Help Menu Item.") end item2:registerScriptTapHandler(menuItem2Callback) local mn = cc.Menu:create(item1, item2) mn:alignItemsVertically() layer:addChild(mn) ------------------------------MenuItemToggle------------------------------ -- 音效 local soundOnMenuItem = cc.MenuItemImage:create("menu/on.png", "menu/on.png") local soundOffMenuItem = cc.MenuItemImage:create("menu/off.png", "menu/off.png") local soundToggleMenuItem = cc.MenuItemToggle:create(soundOnMenuItem, soundOffMenuItem) soundToggleMenuItem:setPosition(director:convertToGL(cc.p(818, 220))) local function menuSoundToggleCallback(sender) cclog("Sound Toggle.") end soundToggleMenuItem:registerScriptTapHandler(menuSoundToggleCallback) -- 音乐 local musicOnMenuItem = cc.MenuItemImage:create("menu/on.png", "menu/on.png") local musicOffMenuItem = cc.MenuItemImage:create("menu/off.png", "menu/off.png") local musicToggleMenuItem = cc.MenuItemToggle:create(musicOnMenuItem, musicOffMenuItem) musicToggleMenuItem:setPosition(director:convertToGL(cc.p(818, 362))) local function menuMusicToggleCallback(sender) cclog("Music Toggle.") end musicToggleMenuItem:registerScriptTapHandler(menuMusicToggleCallback) -- Ok按钮 local okMenuItem = cc.MenuItemImage:create( "menu/ok-down.png", "menu/ok-up.png") okMenuItem:setPosition(director:convertToGL(cc.p(600, 510))) local mn = cc.Menu:create(soundToggleMenuItem, musicToggleMenuItem,okMenuItem) mn:setPosition(cc.p(0, 0)) layer:addChild(mn) ------------------------------EditBox-------------------------------- local sprite = ccui.Scale9Sprite:create(activeLayer:addImgFile(string.format("%sad_activity_codebg.png", activePath))) local codeInput = ccui.EditBox:create(cc.size(350, 50), sprite,sprite,sprite) codeInput:setPlaceholderFont(activeLayer:GetTtfFont(), 24) codeInput:setFont(activeLayer:GetTtfFont(), 24) if appLoc ~= 1 and appLoc ~= 16 then codeInput:setPlaceholderFont(activeLayer:GetTtfFont(), 22) codeInput:setFont(activeLayer:GetTtfFont(), 22) end codeInput:setPlaceHolder(getLocalString("input_tip", appLoc)); codeInput:setFontColor(cc.c3b(255, 255, 255)) codeInput:setMaxLength(24) codeInput:setPosition(cc.p(cPosX,150)) bgSprite:addChild(codeInput) local function editboxEventHandler(eventType) if eventType == "began" then --编辑框开始编辑时调用 strFmt = string.format("editBox %p DidBegin !", codeInput) print(strFmt) elseif eventType == "ended" then --编辑框完成时调用 strFmt = string.format("editBox %p DidEnd !", codeInput) print(strFmt) elseif eventType == "return" then --编辑框return时调用 strFmt = string.format("editBox %p was returned !",codeInput) --判断是哪个编辑框,在多个编辑框同时绑定此函数时 需判断时哪个编辑框 if codeInput == EditName then --当编辑框EditName 按下return 时到此处 elseif codeInput == EditPassword then --当编辑框EditPassword 按下return 时到此处 elseif codeInput == EditEmail then --当编辑框EditEmail 按下return 时到此处 end print(strFmt) elseif eventType == "changed" then --编辑框内容改变时调用 strFmt = string.format("editBox %p TextChanged, text: %s ", codeInput, codeInput:getText()) print(strFmt) end end codeInput:registerScriptEditBoxHandler(editboxEventHandler) ------------------------------Button-------------------------------- local bt = ccui.Button:create() bt:loadTextures("cr_btn_gr_n.png", "cr_btn_gr_p.png", "", 1) --1:从plist文件中获取 0:从本地获取资源 bt:setCascadeOpacityEnabled(true)--开启透明度 bt:setScale9Enabled(true) bt:setContentSize(cc.size(280, 60)) --按钮的大小 bt:loadTextureNormal("132.png",1) bt:setPosition(cc.p(180, 270 - i * 90)) bt:setTouchEnabled(false) bt:setEnabled(false) bt:setBright(false) bt:setTitleText("123")--按钮上的字 bt:setTitleFontName("Arial") bt:setTitleFontSize(22) layer:addChild(bt) bt:addTouchEventListener( function(sender, eventType) if eventType == ccui.TouchEventType.ended then --实现内容 end end ) bt:setBrightStyle(0)——未点击状态 bt:setBrightStyle(1)——被点击状态 bt:setBrightStyle(2)——禁用状态 顺便: bt:setEnabled(true)——设置为可点击 bt:setEnabled(false)——设置为不可点击 -- bt:addTouchEventListener(upBtnCallback) -- local function upBtnCallback(sender, eventType) -- if eventType == ccui.TouchEventType.ended then -- --实现内容 -- end -- end ------------------------------ImageView-------------------------------- local imgIcon = ccui.ImageView:create() imgIcon:loadTexture("cr_gem_tag.png", 1) imgIcon:setPosition(cc.p(30, 30)) imgBk:setScale9Enabled(true) imgBk:setCapInsets(cc.rect(15,15,1,1)) imgBk:setContentSize(cc.size(360, 360)) imgIcon:setTouchEnabled(false) imgIcon:setOpacity(200) layer:addChild(imgIcon) ------------------------------Text-------------------------------- local num = ccui.Text:create() num:setFontName(appFont) num:setFontSize(22) num:setColor(cc.c3b(255, 255, 255)) num:setString(tostring(btText.num)) num:setTextAreaSize(cc.size(240, 60)) num:setPosition(cc.p(65, 30)) num:setTouchEnabled(false) num:ignoreContentAdaptWithSize(false) --自动换行 num:setContentSize(cc.size(560, 460)) num:setTextHorizontalAlignment(cc.TEXT_ALIGNMENT_LEFT)--水平对齐方式 num:setTextVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_CENTER)--垂直对齐方式 num:getVirtualRenderer():enableShadow(cc.c4b(0, 0, 0, 150), cc.size(2,-2)) --num:getVirtualRenderer()为Label类型 layer:addChild(num) ------------------------------tableView-------------------------------- tableView = cc.TableView:create(cc.size(810, 440)) tableView:setDirection(cc.SCROLLVIEW_DIRECTION_VERTICAL) tableView:setVerticalFillOrder(cc.TABLEVIEW_FILL_TOPDOWN) tableView:setColor(cc.c3b(255,255,255)) tableView:setPosition(cc.p(10, 10)) tableView:setDelegate() imgBk:addChild(tableView) tableView:registerScriptHandler(function(tableView) return 1 end, cc.NUMBER_OF_CELLS_IN_TABLEVIEW) tableView:registerScriptHandler(function(tableView, idx) return 960, 640 end, cc.TABLECELL_SIZE_FOR_INDEX) tableView:registerScriptHandler(function(tableView, idx) local pDelCell = tableView:dequeueCell() while (pDelCell ~= nil) do pDelCell:removeAllChildren() pDelCell:removeFromParent() pDelCell = tableView:dequeueCell() end local cell = tableView:dequeueCell() if cell == nil then cell = cc.TableViewCell:create() local cellBg = ccui.ImageView:create("ac_bk.png", 1) cellBg:setPosition(cc.p(cellWidth / 2.0, cellHeight / 2.0 + 5)) cellBg:setScale9Enabled(true) cellBg:setContentSize(cc.size(cellWidth - 10,90)) cell:addChild(cellBg) end return cell end, cc.TABLECELL_SIZE_AT_INDEX) tableView:reloadData() -- tableView:registerScriptHandler(CueResultLayer.scrollViewDidScroll,cc.SCROLLVIEW_SCRIPT_SCROLL) -- tableView:registerScriptHandler(CueResultLayer.scrollViewDidZoom,cc.SCROLLVIEW_SCRIPT_ZOOM) -- tableView:registerScriptHandler(CueResultLayer.tableCellTouched,cc.TABLECELL_TOUCHED) -- tableView:registerScriptHandler(CueResultLayer.cellSizeForTable,cc.TABLECELL_SIZE_FOR_INDEX) -- tableView:registerScriptHandler(CueResultLayer.tableCellAtIndex,cc.TABLECELL_SIZE_AT_INDEX) -- tableView:registerScriptHandler(CueResultLayer.numberOfCellsInTableView,cc.NUMBER_OF_CELLS_IN_TABLEVIEW) -- function CueResultLayer.scrollViewDidScroll(view) -- end -- function CueResultLayer.scrollViewDidZoom(view) -- end -- function CueResultLayer.tableCellTouched(table,cell) -- end -- function CueResultLayer.cellSizeForTable(table,idx) -- return 960,640 -- end -- function CueResultLayer.tableCellAtIndex(table, idx) -- local cell = table:dequeueCell() -- while ( cell ~= nil ) do -- cell:removeFromParent() -- cell = table:dequeueCell() -- end -- if nil == cell then -- cell = cc.TableViewCell:new() -- local propId, propgrade = CueResultLayer:analysisInfo(CueResultLayer.reslutList[idx + 1]) -- local cellBg = ccui.Scale9Sprite:createWithSpriteFrameName("Gray_Bg.png") -- cellBg:setContentSize(cc.size(CELL_WIDTH, CueResultLayer._cellHeight[idx])) -- cellBg:setPosition(cc.p(CELL_WIDTH/2, CueResultLayer._cellHeight[idx] / 2)) -- cell:addChild(cellBg) -- end -- return cell -- end -- function CueResultLayer.numberOfCellsInTableView(table) -- return 1 -- end ------------------------------ListView-------------------------------- local listView = ccui.ListView:create() listView:setContentSize(cc.size(500,95)) listView:setPosition(5, 50) listView:setDirection(ccui.ScrollViewDir.vertical) listView:setGravity(ccui.ListViewGravity.centerVertical) listView:setBounceEnabled(true) listView:setItemsMargin(25) listView:setScrollBarEnabled(false) listView:pushBackDefaultItem() layer:addChild(listView) for i = 1, 3 do local custom_item = ccui.Layout:create() custom_item:setContentSize(cc.size(580, 140)) listView:pushBackCustomItem(custom_item) local spBg = cc.Sprite:create(activeLayer:addImgFile(activePath .. "row_show.png")) spBg:setAnchorPoint(cc.p(0,0)) custom_item:addChild(spBg); end ------------------------------LoadingBar-------------------------------- local progress = ccui.LoadingBar:create() progress:loadTexture("ac_pross.png", 1) progress:setPercent(0) progress:setPosition(627, 345) layer:addChild(progress,2) ------------------------------RichText-------------------------------- local richText = ccui.RichText:create() richText:ignoreContentAdaptWithSize(true) richText:setAnchorPoint(cc.p(0.5,0.5)) local re1 = ccui.RichElementText:create(1, cc.c3b(0xa3, 0xa5, 0xe6), 255, "123", "Arial", 20) local re2 = ccui.RichElementText:create(2, cc.c3b(0x22,0x9d,0x60), 255, "123", "Arial", 20) richText:pushBackElement(re1) richText:pushBackElement(re2) layer:addChild(richText) ------------------------------TextField-------------------------------- local codeInput = ccui.TextField:create(getLocalString("input_tip", appLoc),activeLayer:GetTtfFont(), 24) codeInput:setTouchAreaEnabled(true) codeInput:setTouchSize(cc.size(350,60)) codeInput:setMaxLengthEnabled(true) codeInput:setTouchEnabled(true) codeInput:setCursorEnabled(true) codeInput:setColor(cc.c3b(255, 255, 255)) codeInput:setMaxLength(24) codeInput:setScaleX(1/1.4) codeInput:setAnchorPoint(cc.p(0,0.5)) codeInput:setPosition(cc.p(0,22)) codeInput:addEventListener(function(sender, eventType) if eventType == 0 then --键盘弹出 if codeInput:getStringLength() <= 2 then codeInput:setAnchorPoint(cc.p(0.5,0.5)) end if codeInput:getString() ~= "" then codeInput:setAnchorPoint(cc.p(0,0.5)) end elseif eventType == 1 then --键盘隐藏 if codeInput:getString() == "" then codeInput:setString("") codeInput:setAnchorPoint(cc.p(0,0.5)) end elseif eventType == 2 then --输入文本 codeInput:setAnchorPoint(cc.p(0,0.5)) elseif eventType == 3 then --删除文本 codeInput:setAnchorPoint(cc.p(0,0.5)) end end) layer:addChild(codeInput) ------------------------------CocosStudio-------------------------------- --获取widget local rootWidget = ccs.GUIReader:getInstance():widgetFromJsonFile("ChristmasLayer.ExportJson") --cocos studio layer:addChild(rootWidget) --获取对象 --第一种方式 父类获取子类 local labelTitle = rootWidget:getChildByName("Label_title") labelTitle:setFontName("..ttf") --字体名称 labelTitle:setFontSize(18)--字体大小 labelTitle:getVirtualRenderer():enableOutline(cc.c4b(255, 255, 0, 255), 1.0)--描边 --第二种方式 local labelTitle = ccui.Helper:seekWidgetByName(rootWidget,"Label_title") --注意,从CocosStudio获取对象,如果是文本框(Text)、输入框(EditBox)、按钮(Button)、图片(ImageView) ------------------------------动画Animate-------------------------------- --蛋裂开动画 local spriteFrame = cc.SpriteFrameCache:getInstance() spriteFrame:addSpriteFramesWithFile("run.plist") --添加plist文件 local animation = cc.Animation:create() for i = 1, 25 do --第一种 -- local frameName = string.format("h%d.png",i) -- cclog("frameName = %s",frameName) -- local spriteFrame = spriteFrame:getSpriteFrameByName(frameName) -- animation:addSpriteFrame(spriteFrame) --第二种 local frameName = string.format("fire/campFired.png",i) cclog("frameName = %s",frameName) animation:addSpriteFrameWithFile(frameName) end animation:setDelayPerUnit(1. / 25.0) animation:setRestoreOriginalFrame(true) local action = cc.Animate:create(animation) local breakSprite = cc.Sprite:createWithSpriteFrameName("egg_" .. c .. " (1).png") breakSprite:setPosition(87, 191) imgIcon:addChild(breakSprite, 4, 4) breakSprite:runAction(cc.Sequence:create(cc.DelayTime:create(0.3), action, cc.RemoveSelf:create())) --第二种 local frameWidth = 105 local frameHeight = 95 -- create dog animate local textureDog = cc.Director:getInstance():getTextureCache():addImage("dog.png") local rect = cc.rect(0, 0, frameWidth, frameHeight) local frame0 = cc.SpriteFrame:createWithTexture(textureDog, rect) rect = cc.rect(frameWidth, 0, frameWidth, frameHeight) local frame1 = cc.SpriteFrame:createWithTexture(textureDog, rect) local spriteDog = cc.Sprite:createWithSpriteFrame(frame0) spriteDog:setPosition(self.origin.x, self.origin.y + self.visibleSize.height / 4 * 3) spriteDog.isPaused = false local animation = cc.Animation:createWithSpriteFrames({frame0,frame1}, 0.5) local animate = cc.Animate:create(animation); spriteDog:runAction(cc.RepeatForever:create(animate)) ------------------------------XML动画Armature-------------------------------- ccs.ArmatureDataManager : getInstance() : addArmatureFileInfo(appPath .. "xiaochou01.png",appPath .. "xiaochou01.plist", appPath .. "xiaochou01.xml") local armature = ccs.Armature : create("xiaochoudonghua") armature : getAnimation() : playWithIndex(0) armature : setAnchorPoint(cc.p(0.5, 0.5)) armature : setPosition(170, 200) armature : getAnimation() : setSpeedScale(20 / 80) armature : setScale(0.8) layer : addChild(armature) ------------------------------粒子特效-------------------------------- local particleSystem = cc.ParticleSystemQuad:create("snow.plist") particleSystem:setPosition(cc.p(size.width/2, size.height + 50)) layer:addChild(particleSystem) ------------------------------动作Action-------------------------------- local action1 = cc.MoveTo:create(0.5, cc.p(480, -320)) local callfunc = cc.CallFunc:create(HideLayerFinishCallBack) local action2 = cc.EaseExponentialOut:create(action1) local action = cc.Sequence:create(action2, callfunc) layer:runAction(action) local function CallBack1() sprite:runAction(cc.TintBy:create(0.5, 255, 0, 255)) end function MyActionScene:OnCallFunc() local acf = cc.CallFunc:create(CallBack1) sprite:runAction(acf) end local function CallBack2(pSender) local sp = pSender sp:runAction(cc.TintBy:create(1, 255, 0, 255)) end function MyActionScene:OnCallFuncN() local acf = cc.CallFunc:create(CallBack2) sprite:runAction(cc.Sequence:create(acf)) end local function CallBack3(pSender, table) local sp = pSender cclog("CallBack3 %d", table[1]) sp:runAction(cc.TintBy:create(table[1], table[2], table[3], table[4])) end function MyActionScene:OnCallFuncND() local acf = cc.CallFunc:create(CallBack3, {1, 255, 0, 255}) sprite:runAction(acf) end EaseIn由慢至快,按照参数比例运动。 EaseOut由快至慢。 EaseInOut,是前两者的综合。 EaseExponentialIn,CCEaseExponentialOut, CCEaseExponentialInOut,的基类是CCActionEase EaseExponentialIn,由慢至快,没有比例参数 EaseExponentialOut由快至慢,开始忽然加速 EaseExponentialInOut,前两者的综合 CCEaseSineIn, CCEaseSineout, CCEaseSineInOut基类是CCActionEase,它是弹性缓冲。 ------------------------------遮罩ClippingNode-------------------------------- local stencil = cc.Sprite:create() stencil:setTextureRect(cc.rect(0, 0, 420, 220)) stencil:setColor(cc.c3b(255,255,255)) local clippnode = cc.ClippingNode:create(stencil) clippnode:setPosition(600, 140) clippnode:setInverted(false); layer:addChild(clippnode) ------------------------------定时器scheduler-------------------------------- --自定义定时器 local function updateLeftTime(f) --实现内容 end local schedule_updateLeftTime = nil local scheduler = cc.Director:getInstance():getScheduler() -- schedule_updateLeftTime = scheduler:scheduleScriptFunc(updateLeftTime, 1.0, false) --时间调度器 local function onNodeEvent(event) --退出事件停止调用定时器 --有五个状态 enter、enterTransitionFinish、exit、exitTransitionStart、cleanup if event == "exitTransitionStart" then if schedule_updateLeftTime then scheduler:unscheduleScriptEntry(schedule_updateLeftTime) schedule_updateLeftTime = nil end end end --创建退出时候监听 某个节点退出 node:registerScriptHandler(onNodeEvent) updateLeftTime(0) --默认定时器 local function update(delta) local x,y = label:getPosition() label:setPosition(cc.p(x + 2, y - 2)) end --开始游戏调度 layer:scheduleUpdateWithPriorityLua(update, 0) function onNodeEvent(tag) if tag == "exit" then --开始游戏调度 layer:unscheduleUpdate() end end layer:registerScriptHandler(onNodeEvent) ------------------------------单点触摸事件-------------------------------- --注册触摸事件 local function onTouchBegin(touch, event) return true end local function onTouchMoved(touch, event) local location = touch:getLocation() cclog("onTouchMoved: %0.2f, %0.2f", location.x, location.y) end local function onTouchEnded(touch, event) -- 获取事件所绑定的 node local node = event:getCurrentTarget() local locationInNode = node:convertToNodeSpace(touch:getLocation()) local s = imgBk:getContentSize() local rect = cc.rect(150, 150, s.width-20, s.height) -- 点击范围判断检测 if cc.rectContainsPoint(rect, locationInNode) == false then end end local listener = cc.EventListenerTouchOneByOne:create() listener:registerScriptHandler(onTouchBegin, cc.Handler.EVENT_TOUCH_BEGAN ) listener:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED ) listener:registerScriptHandler(onTouchEnded, cc.Handler.EVENT_TOUCH_ENDED ) listener:setSwallowTouches(true) local eventDispatcher = layer:getEventDispatcher() eventDispatcher:addEventListenerWithSceneGraphPriority(listener, layer) -- local listener2 = listener1:clone() -- eventDispatcher:addEventListenerWithSceneGraphPriority(listener2, boxB) -- local listener3 = listener1:clone() -- eventDispatcher:addEventListenerWithSceneGraphPriority(listener3, boxC) ------------------------------坐标-------------------------------- lUA中的getXX事件: getPosition() -- 返回两个值:x y getAnchorPoint() -- point_table getContentSize() -- size_table getBoundingBox() -- rect_table 其中,要注意的是getPosition(),其他的都可以直接赋值给表,这是一个大坑 getPosition() --返回的是x,y两个值 接受后处理 -- 方法一 : 用两个变量接收 local x, y = sprite:getPosition() -- 方法二 : 转换为point_table local p = cc.p(sprite:getPosetBrightStyle(0)sition()) LocalZOrder 前面提到过,每一个父节点都可以持有一个节点树。节点树中的子节点的 _localZOrder 属性会作为该子节点与其他兄弟姐妹子节点间排序的关键字。 节点树的父节点会依据这个值来对所有的子节点进行排序。_localZOrder < 0 表示子节点放在节点树的左子树中, _localZOrder >= 0 表示子节点放在节点树的右子树中。 local CentrePiont =cc.p(buttonAre:getPosition()) -----获取本地坐标(相对于父节点坐标) local pos = buttonAre:getParent():convertToWorldSpace(CentrePiont)---------获取世界坐标 ----------------------------------------------