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
Cocos2d-x-lua游戏两个场景互相切换MainScene01切换到MainScene02的更多相关文章
- 第一个Cocos2d-x Lua游戏
我们的编写的第一个Cocos2d-x Lua程序,命名为HelloLua,从该工程开始学习其它的内容.创建工程我们创建Cocos2d-x Lua工程可以通过Cocos2d-x提供的命令工具cocos实 ...
- Cocos 2d-X Lua 游戏添加苹果内购(二) OC和Lua交互代码详解
这是第二篇 Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程 这是前面的第一篇,详细的说明了怎样添加内购项目以及填写银行信息提交以及沙盒测试员的添加使用以及需要我们注意的东西,结 ...
- 【Cocos2D研究院之游戏开发】
http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发] 201211-19 Co ...
- lua游戏开发实践指南学习笔记1
本文是依据lua游戏开发实践指南做的一些学习笔记,仅用于继续自己学习的一些知识. Lua基础 1. 语言定义: 在lua语言中,标识符有非常大的灵活性(变量和函数名),只是用户不呢个以数字作为起始符 ...
- 【Cocos游戏实战】功夫小子第七课之游戏主功能场景逻辑功能和暂停功能场景的分析和实现
CSDN的markdown编辑器是吃屎了么! !.什么玩意.!写了一半写不了东西还全没了,搞个毛线! 本节课的视频教程地址是:第七课在此 假设本教程有帮助到您,希望您能点击进去观看一下,并且如今注冊成 ...
- 【转】 [Unity3D]手机3D游戏开发:场景切换与数据存储(PlayerPrefs 类的介绍与使用)
http://blog.csdn.net/pleasecallmewhy/article/details/8543181 在Unity中的数据存储和iOS中字典的存储基本相同,是通过关键字实现数据存储 ...
- lua中,两种json和table互转方法的效率比较
lua中json和table的互转,是我们在平时开发过程中经常用到的.比如: 在用lua编写的服务器中,如果客户端发送json格式的数据,那么在lua处理业务逻辑的时候,必然需要转换成lua自己的数据 ...
- Lua游戏逆向及破解方法介绍
Lua游戏逆向及破解方法介绍 背景介绍 随着手游的发展,越来越多的Cocos-lua端游开发者转移到手游平台.Lua脚本编写逻辑的手游也是越来越多,如梦幻西游.刀塔传奇.开心消消乐.游龙英雄.奇迹 ...
- LUA脚本调用C场景,使用C API访问脚本构造的表
LUA调用C lua解析中集成了一些系统服务, 故脚本中可以访问系统资源, 例如, lua脚本可以调用文件系统接口, 可以调用数学库, 但是总存在一些lua脚本中访问不到的系统服务或者扩展功能, 如果 ...
随机推荐
- 什么是透明(和Windows主题有关系),研究TLable和TPanel是两个好例子
在controls.pas单元里只有判断,没有赋值,所以一直不是很明白.于是在stdCtrls.pas里找了几个例子,直观加深一下印象: constructor TCustomLabel.Create ...
- mysql死锁问题分析(转)
线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”. Oh, My God! 是死锁问题.尽管报错不多,对性能目前看来 ...
- attachEvent和addEventListener详解
attachEvent方法可以动态的为网页内的元素添加一个事件.通常你想为某个按扭添加一个单击事件时.你都会在按扭内写上onclick=事件名称.使用attachEvent则不必这样做.你把写好的事件 ...
- Response.AppendCookie
//写入 protected void Button2_Click(object sender, EventArgs e) { HttpCookie cookie=new HttpCookie(&qu ...
- boost::asio 连接管理11 如何关闭连接
在实际产品运行中,对连接管理有了更新的认识,这里分享一下. shared_ptr管理连接对象的生命周期 shared_ptr的引用计数器决定了连接对象的生命周期.这里我说的连接对象就是在我的前文:ht ...
- JavaScript 进阶(四)解密闭包closure
闭包(closure)是什么东西 我面试前端基本都会问一个问题"请描述一下闭包".相当多的应聘者的反应都是断断续续的词,“子函数”“父函数”“变量”,支支吾吾的说不清楚.我提示说如 ...
- Kendo UI开发教程(27): 移动应用开发简介
Kendo UI 支持开发Web应用,前面介绍的SPA,也支持开发移动应用,至于使用 HTML5 + JavaScript + CSS开发移动是不是一个好的选择不在本文的讨论之中.Kendo UI M ...
- (原创)优酷androidclient 下载中 bug 解决
在网络情况不好的情况下,优酷androidclient下载视频会终止,用户放弃下载点击 删除该任务以后,切换到网络好的情况下进行下载,会显示该视频已在下载队列里,然后clientUI界面却什么都看不到 ...
- Python unittest 官方文档
https://docs.python.org/2/library/unittest.html#
- 发掘ListBox的潜力(三):显示即时提示(Tips)
ListBox显示即时提示(Tips) Listbox内容太长时超出Listbox宽度的部分将无法显示,一种解决方法是让Listbox产生横向滚动条,滚动显示内容(见前面的<发掘ListBox的 ...