Cocos2d-x-lua游戏两个场景互相切换MainScene01切换到MainScene02「建议收藏」

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






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116425.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月21日 下午4:00
下一篇 2022年1月21日 下午4:00


相关推荐

  • PyCharm快捷键替换变量

    PyCharm快捷键替换变量开发该软件的操作系统 windows10 软件开发环境 开发工具 PyCharm 编程语言 Python 开发目的 在编程过程中遇到了问题 提供解决方法 供初学者参考学习 遇到的问题 使用 pycharm 编程过程中遇到要将变量名进行全部替换 例如 使用 replaceall 将 num 替换成 num01 时 pycharm 将 guessNum 中的 Num 也替换成 num01 即 pycharm 会将包含 num 无论大小写 的所有变量进行替换 Step01 按快捷键 Ctrl r

    2026年3月19日
    2
  • HTML中的window对象和document对象详解

    HTML中的window对象和document对象详解Window–代表浏览器中一个打开的窗口:对象属性  window//窗口自身  window.self//引用本窗户window=window.self  window.name//为窗口命名  window.defaultStatus//设定窗户状态栏信息  window.location//URL地址,配备布置这个属性可以打开新的页面对象方

    2022年7月19日
    36
  • Batch Normalization批量归一化[通俗易懂]

    Batch Normalization批量归一化[通俗易懂]深度学习捷报连连、声名鹊起,随机梯度下降成了训练深度网络的主流方法。尽管随机梯度下降法对于训练深度网络简单高效,但是它有个毛病,就是需要我们人为的去选择参数,比如学习率、参数初始化、权重衰减系数、Dropout比例等。这些参数的选择对训练结果至关重要,以至于我们很多时间都浪费在这些的调参上。那么学完这篇文献之后,你可以不需要那么刻意的慢慢调整参数。批量标准化一般用在非线性…

    2022年8月31日
    13
  • Java stream groupby_javadoop

    Java stream groupby_javadoopgroupingBy()是StreamAPI中最强大的收集器Collector之一,提供与SQL的GROUPBY子句类似的功能。使用形式如下: .collect(groupingBy(…)); 需要指定一个属性才能使用,通过该属性执行分组。我们通过提供功能接口的实现来实现这一点-通常通过传递lambda表达式。例如,如果我…

    2022年8月20日
    9
  • AC自动机和Fail树

    Fail树与阿狸的打字机萌新第一次试着写博客…全是口胡(/□\*),可能以后也不会有时间再写了相关数据结构:AC自动机,树状数组(线段树)Fail指针的基本性质:某只结点的Fail指针,指向它所代表的字符串的最长的后缀的结点。性质:每只结点沿着其Fail指针一直走,最终会走到根节点。这样,将每只结点和其Fail指针指向的结点连边,就形成了一个树,其根与原Trie树相同,称为Fail树。…

    2022年4月7日
    58
  • 常见的几种RuntimeException

    常见的几种RuntimeException

    2021年9月1日
    74

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号