• Cocos2d-x-lua游戏两个场景互相切换MainScene01切换到MainScene02


    /*

       场景一lua代码

    */


    require "MainScene02"


    local dic_size = CCDirector:sharedDirector():getWinSize()
    local win_w = dic_size.width
    local win_h = dic_size.height

    local  cclog = function(...)
         print(string.format(...))
    end

    function MainScene_01()
        
        
    local self = CCLayer:create()
        
        
    -- click btn
        local function clickMenu_scene()
            
    --切换场景<特效>
            local fadeClipX = CCTransitionFlipX:create(1,_main02())
            CCDirector:sharedDirector():replaceScene(fadeClipX)
            
        
    end
        
    --初始化相关场景元素
        local function init()
            
            cclog(
    "....this is init thing......")
            
    -- put a bg pic
            local pSrite = CCSprite:create("bg_store.png")
            pSrite:setPosition(ccp(win_w/
    2, win_h/2))
            pSrite:setScaleX(win_w/pSrite:getContentSize().width)
            self:addChild(pSrite)
            
            
            
    -- create a Button Menu
            local btn  = CCMenuItemImage:create("btn_store_normal.png""btn_store_selected.png")
            btn:setPosition(ccp(win_w/
    2, win_h/2))
            btn:registerScriptTapHandler(clickMenu_scene)
    --加入button点击触发事件
            local btn_menu = CCMenu:createWithItem(btn)
            btn_menu:setPosition(ccp(
    0,0))
            self:addChild(btn_menu)
            
        
    end
        
        init()
    --get init method
        
        
    return self
    end

    function _main01()
        
    local scene = CCScene:create()
        scene:addChild(MainScene_01())
        
    local dic = CCDirector:sharedDirector()
        dic:setDisplayStats(false)
        
    -- CCEGLView:sharedOpenGLView():setDesignResolutionSize(960,480, kResolutionShowAll)
        -- CCEGLView:sharedOpenGLView():setDesignResolutionSize(480, 800, kResolutionShowAll)
        dic:runWithScene(scene)
    end

    _main01()--调用方法


    /*

       场景二lua代码

    */


    local dic_size = CCDirector:sharedDirector():getWinSize()
    local win_w = dic_size.width
    local win_h = dic_size.height

    --初始化第二个场景的层元素
    local function MainScene_02()

    local layer = CCLayer:create()
    local cclog = function (...)
        
    print(string.format(...))
    end
    --点击button触发的方法
    local function clickMainScene02_pop()
        cclog(
    "this is clicked ".."btn 02")
        
    local fins = layer:getChildByTag(100)
        fins:setVisible(true)
        
    end

    cclog(
    "这是在切换新的场景。。

    。。。。

    ")
    --创建层
    --local layer = CCLayer:create()
    --
    初始化场景的各个元素
    local function inits()
        
    --初始化第二个场景的背景
        local bgSprite = CCSprite:create("bg_mainmenu.png")
        bgSprite:setPosition(ccp(win_w/
    2, win_h/2))
        bgSprite:setScaleX(win_w/bgSprite:getContentSize().width)
        layer:addChild(bgSprite)
        
    --加入button
        local popMenu = CCMenuItemImage:create("menu1.png","menu1.png")
        popMenu:registerScriptTapHandler(clickMainScene02_pop)
        popMenu:setScale(
    2)
        popMenu:setPosition(ccp(win_w/
    2, win_h/2))
        
    local okMenu = CCMenu:createWithItem(popMenu)
        okMenu:setPosition(ccp(
    0,0))
        layer:addChild(okMenu)
        
    local showSp = CCSprite:create("menu2.png")
        showSp:setTag(
    100)
        showSp:setAnchorPoint(ccp(
    0,0))
        showSp:setPosition(ccp(win_w/
    2, win_h/2))
        showSp:setVisible(false)
        layer:addChild(showSp)
        
    end

    inits()
    --[[
     
    处理触碰事件
     onTouchBegan
     onTouchMoved
     onTouchEnded
     ]]

    local function onTouchBegan()
        
        cclog(
    "xiaoshiba -------------")
        layer:getChildByTag(
    100):setVisible(false)

        
    return true
    end

    local function onTouchMoved()
        cclog(
    "onTouchMoved")
    end
    local function onTouchEnded()
        cclog(
    "onTouchEnded")
        
    --随意触碰时 将菜单隐藏
        layer:getChildByTag(100):setVisible(false)
    end

    local function onTouch(eventTye,x,y)
        
    if eventType == "began" then
            
    return onTouchBegan(x,y)
            
    elseif eventType == "moved" then
            
    return onTouchMoved(x,y)
            
    else
            
    return onTouchEnded(x,y)
        
    end
        
    end
    --注冊触碰事件
    layer:setTouchEnabled(true)
    layer:registerScriptTouchHandler(onTouch)



    return  layer
    end

    function _main02()
    local sc02 = CCScene:create()
    sc02:addChild(MainScene_02())
    return sc02
    end








  • 相关阅读:
    iOS--推送
    iOS 多线程之GCD
    iOS多线程之NSThread
    NSUserDefaults的简单使用
    stat命令的实现-mystat
    linux pwd指令的C实现
    2019-2020-1 20175307 20175308 20175319 实验五 通讯协议设计
    2019-2020-1 20175307 20175308 20175319 实验四 外设驱动程序设计
    2019-2020-1 20175307 20175308 20175319 实验三 并发程序
    2019-2020-1 20175307 20175308 20175319 实验二 固件程序设计
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5102784.html
Copyright © 2020-2023  润新知