前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cocos2d-x-lua游戏两个场景互相切换MainScene01切换到MainScene02「建议收藏」

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

作者头像
全栈程序员站长
发布2022-07-07 18:54:08
3190
发布2022-07-07 18:54:08
举报

大家好,又见面了,我是全栈君。

/*

场景一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.cn/116425.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档