Cocos2d-x Lua学习【1】基本元素的创建

1、基本层

function GameScene:createInGameLayer()
        local inGameLayer = cc.Layer::create();
        return inGameLayer;
end

2、基本场景

 local sceneGame = cc.Scene:create()  
    sceneGame:addChild(createInGameLayer())  
  
cc.Director:getInstance():runWithScene(sceneGame)  
cc.Director:getInstance():replaceScene(cc.TransitionFade:create(1,WelcomeScene.createScene())) 

3、基本精灵

function createInGameLayer()   
        local inGameLayer = cc.Layer:create()  
        local bg = cc.Sprite:create("farm.jpg")  
        bg:setAnchorPoint(0,0)  
        inGameLayer:addChild(bg)  
        return inGameLayer  
end  

4、基本定时器

local function tick()  
            
       end  
  
       cc.Director:getInstance():getScheduler():scheduleScriptFunc(tick,false)  

5、基本触摸事件

local touchBeginPoint = nil  
        local function onTouchBegan(touch,event)  
            local location = touch:getLocation()  
            cclog("onTouchBegan: %0.2f,%0.2f",location.x,location.y)  
            touchBeginPoint = {x = location.x,y = location.y}  
            -- CCTOUCHBEGAN event must return true  
            --[[多点  
             for i = 1,table.getn(touches) do  
             local location = touches[i]:getLocation()  
             Sprite1.addNewSpriteWithCoords(Helper.currentLayer,location)  
             end  
            ]]--  
            return true  
        end  
  
        local function onTouchMoved(touch,event)  
            local location = touch:getLocation()  
            cclog("onTouchMoved: %0.2f,location.y)  
            if touchBeginPoint then  
                local cx,cy = layerFarm:getPosition()  
                layerFarm:setPosition(cx + location.x - touchBeginPoint.x,cy + location.y - touchBeginPoint.y)  
                touchBeginPoint = {x = location.x,y = location.y}  
            end  
        end  
  
        local function onTouchEnded(touch,event)  
            local location = touch:getLocation()  
            cclog("onTouchEnded: %0.2f,location.y)  
            touchBeginPoint = nil  
            spriteDog.isPaused = false  
        end  
  
        local listener = cc.EventListenerTouchOneByOne:create()  
        --local listener = cc.EventListenerTouchAllAtOnce:create() 多点  
        listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )  
        listener:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED )  
        listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )  
        local eventDispatcher = layerFarm:getEventDispatcher()  
        eventDispatcher:addEventListenerWithSceneGraPHPriority(listener,layerFarm) 

6、基本音乐

--local bgMusicPath = CCFileUtils:getInstance():fullPathForFilename("background.ogg")  
  
   local bgMusicPath = cc.FileUtils:getInstance():fullPathForFilename("background.mp3")  
  
   cc.SimpleAudioEngine:getInstance():playMusic(bgMusicPath,true)  
   local effectPath = cc.FileUtils:getInstance():fullPathForFilename("effect1.wav")  
  
   cc.SimpleAudioEngine:getInstance():preloadEffect(effectPath)  
  
   local function menuCallbackOpenPopup()  
           -- loop test sound effect  
           local effectPath = cc.FileUtils:getInstance():fullPathForFilename("effect1.wav")  
           effectID = cc.SimpleAudioEngine:getInstance():playEffect(effectPath)  
           menuPopup:setVisible(true)  
       end  

7、基本加载图片

cc.Director:getInstance():getTextureCache():addImageAsync("DartBlood.png",imageLoaded)  
local texture0 = cc.Director:getInstance():getTextureCache():addImage( "Images/grossini_dance_atlas.png")  
  
function LoadingScene.imageLoaded( pObj)  
    -- body  
end  
  
cc.Director:getInstance():getTextureCache():removeTextureForKey("Images/grossinis_sister1-testalpha.png")  
cc.Director:getInstance():getTextureCache():removeAllTextures()  
cc.Director:getInstance():getTextureCache():removeUnusedTextures()  
  
local cache = cc.SpriteFrameCache:getInstance()  
cache:addSpriteFrames("animations/grossini_gray.plist","animations/grossini_gray.png")  
SpriteFrameTest.m_pSprite1 = cc.Sprite:createWithSpriteFrameName("grossini_dance_01.png")  

8、基本动作

local function CallFucnCallback1()  
      
end  
  
local action = cc.Sequence:create(  
        cc.MoveBy:create(2,cc.p(200,0)),cc.CallFunc:create(CallFucnCallback1) )  
 grossini:runAction(action)  

9、基本格式化输出字符串

string.format("grossini_dance_%02d.png",j + 1)  

10、基本按钮

local start = cc.Sprite:createWithSpriteFrameName("start.png")  
  
  
local  startItem = cc.MenuItemSprite:create(start,start,start)  
  
  
local function menuCallback(sender)  
    cclog("menuCallback...")  
    --tolua.cast(ret:getParent(),"cc.LayerMultiplex"):switchTo(1)  
end  
  
  
startItem:registerScriptTapHandler(menuCallback)  
startItem:setPosition(50,50)  
  
  
local  menu = cc.Menu:create()  
menu:addChild(startItem)  
menu:setPosition(0,0)  
layer:addChild(menu)  


11、基本菜单

-- create menu
function GameScene:createLayerMenu()

    local layerMenu = cc.Layer:create()
    local menuPopup,menuTools,effectID

    local function menuCallbackClosePopup()
        -- stop test sound effect
        cc.SimpleAudioEngine:getInstance():stopEffect(effectID)
        menuPopup:setVisible(false)
    end

    local function menuCallbackOpenPopup()
        -- loop test sound effect
        local effectPath = cc.FileUtils:getInstance():fullPathForFilename("effect1.wav")
        effectID = cc.SimpleAudioEngine:getInstance():playEffect(effectPath)
        menuPopup:setVisible(true)
    end

    -- add a popup menu
    local menuPopupItem = cc.MenuItemImage:create("menu2.png","menu2.png")
    menuPopupItem:setPosition(0,0)
    menuPopupItem:registerScriptTapHandler(menuCallbackClosePopup)
    menuPopup = cc.Menu:create(menuPopupItem)
    menuPopup:setPosition(self.origin.x + self.visibleSize.width / 2,self.origin.y + self.visibleSize.height / 2)
    menuPopup:setVisible(false)
    layerMenu:addChild(menuPopup)

    -- add the left-bottom "tools" menu to invoke menuPopup
    local menuToolsItem = cc.MenuItemImage:create("menu1.png","menu1.png")
    menuToolsItem:setPosition(0,0)
    menuToolsItem:registerScriptTapHandler(menuCallbackOpenPopup)
    menuTools = cc.Menu:create(menuToolsItem)
    local itemWidth = menuToolsItem:getContentSize().width
    local itemHeight = menuToolsItem:getContentSize().height
    menuTools:setPosition(self.origin.x + itemWidth/2,self.origin.y + itemHeight/2)
    layerMenu:addChild(menuTools)

    return layerMenu
end

相关文章

操作步骤 1、创建cocos2d-x工程 2、新建 Scene1.cpp Scene1.h Scene1.h代码 #ifndef __SCENE1_H__#defi...
开发环境:OS(WINDOWS 8.1 X64 企业版) cocos2d-x 2.2.1 vs2010 想给vs安装上cocos的模版,执行Install...
把创建项目做成一个批处理,当创建项目时可以省时省力很多。 操作步骤 1、在 E:cocos2d-x-2.2.1toolspr...
https://www.cnblogs.com/JiaoQing/p/3906780.html 四个响应函数 1 EventListenerPhysicsContact* evC...
转载于 http://www.cnblogs.com/kenkofox/p/3926797.html 熟悉js的dom事件或者flash事件的,基本都能立...
ScrollView(滚动容器)加载大量item时会导致游戏界面的卡顿,严重时整个界面会出现卡死的情况。最近项...