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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VCLibs库文件包下载_怎么使用已有的加速包

    VCLibs库文件包下载_怎么使用已有的加速包本文以MDI应用程序为例说明如何在已有的VC++工程中使用BCG界面库,我的开发环境为VS2003。1、将BCG/BCGCBPro目录路径添加到“项目属性->C/C++->常规->附加包含目录”中,同时将BCG/Bin目录路径添加到“项目属性->链接器->常规->附加库目录”中。2、确保在CWinApp派生类(设为CMyApp)的InitInstance()成员函数中调用AfxOl

    2022年10月8日
    4
  • 实例分割与语义分割_genitive case

    实例分割与语义分割_genitive case摘要本文提出了一个简单的全卷积网络来实现实时的实例分割(from加州大学戴维斯分校)MSCOCO数据集——mAP=29.8%,33fps,在单个TitanXp上实验,比目前任一方法都要快速,并且只使用了单个GPU。为何获得如此好的效果:将实例分割任务分成了两个并行的过程:产生一系列模板mask预测每个实例mask的系数之后将模板mask和实例mask系数进行线性组合来获得实……

    2022年8月23日
    6
  • 神奇的罗斯.布朗_罗曼·格罗斯让

    神奇的罗斯.布朗_罗曼·格罗斯让这是一篇赞美罗斯.布朗和他的车队布朗GP的文章未完,抽时间写作中……转载于:https://www.cnblogs.com/yuuhhe/archive/2009/03/30/1425074.html

    2022年9月30日
    3
  • EnterCriticalSection 和 LeaveCriticalSection[通俗易懂]

    EnterCriticalSection 和 LeaveCriticalSection[通俗易懂]EnterCriticalSection和LeaveCriticalSection是干嘛用的?多个线程操作相同的数据(内存块)时,一般是需要按顺序访问的,否则会引导数据错乱,无法控制数据,变成随机变量。为解决这个问题,就需要引入互斥变量,让每个线程都按顺序地访问变量。这两个函数就是实现这种功能的。作用域:不是针对于资源的,而是针对于不同线程间的代码段的什么是临界区:临界区是一种轻量级机制,在某一时…

    2026年2月3日
    3
  • 计算机软件师社会需求,java软件工程师的社会环境如何?「建议收藏」

    计算机软件师社会需求,java软件工程师的社会环境如何?「建议收藏」计算机专业成功的改变了很多人的命运,很多人选择计算机培训后拥有了很体面的工作,拥有了很高的工资待遇,整个人的生活水平方面了质的改变。所以越来越多的人希望可以学习计算机,而在专业选择的过程中,JAVA专业吸引到很多求学者的关注。在对JAVA这个专业了解的过程中,JAVA软件工程师的社会环境成为了很多求学者希望了解的内容,这样才能够对这个专业具有更加全面的了解。社会的地位引起关注从JAVA专业成功就业…

    2022年9月23日
    3
  • 【ios客户端渗透测试】测试机越狱和屏蔽越狱检测

    【ios客户端渗透测试】测试机越狱和屏蔽越狱检测文章目录概述安装越狱工具爱思助手一键越狱(未成功)xx概述测试机版本:iPhone8/14.3。越狱工具:unc0ver8.0.2据说unc0ver重启后需要重新越狱。(仅需在手机上操作)安装越狱工具访问unc0ver官网,下载最新版本8.0.2。ios不能安装没有进行安全签名的应用,所以尝试使用爱思助手直接安装unc0ver8.0.2失败,提示“设备未安装AppSync越狱补丁”。爱思助手一键越狱(未成功)使用爱思助手一键越狱,根据提示登录AppleID进行签

    2022年5月4日
    498

发表回复

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

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