quick-cocos2d-x lua编写简单的场景
来源:互联网 发布:信息安全需要学编程吗 编辑:程序博客网 时间:2024/06/05 22:30
一、先看看我的目录结构
二、CCloud.lua
require("app.CResource")local m_rc = RcCloudCCloud = class("CCloud", function()return CCSprite : create(m_rc.m_fname)end)CCloud.winSize = CCDirector : sharedDirector() : getVisibleSize()local function call_setPos(this)local sz = this : getContentSize()this : setPosition ( ccp( -sz.width, this.winSize.height / (math.random(5))) )endfunction CCloud : create(pLayer) local cloud = CCloud.new()pLayer : addChild(cloud) math.randomseed(os.time())local sz = cloud : getContentSize()local by = CCMoveBy:create(20.0, ccp(cloud.winSize.width + 2 * sz.width, 0))local pFun = CCCallFuncN : create (call_setPos)local pRepeat = CCRepeatForever : create (CCSequence:createWithTwoActions ( pFun, by) )cloud : runAction(pRepeat)endfunction CCloud:ctor()endreturn CCloud
二、CMessage.lua
require("app.CResource")local m_rc = RcMessageCMessage = class("CMessage", function() return CCSprite : create(m_rc.m_fname)end)CMessage.winSize = CCDirector : sharedDirector() : getVisibleSize()CMessage.m_lbl = NULL-- 设置文本function CMessage : setText(text) self : setPosition(ccp(self.winSize.width / 2.0, self.winSize.height / 2.0)) self.m_lbl : setString(text) local sz = self : getContentSize() self.m_lbl : setPosition(ccp(sz.width / 2.0, sz.height / 2.0))end-- 隐藏local function call_hide(this) this : removeFromParent()end-- 提示function CMessage : create(pLayer, text) local pMsg = CMessage.new() pLayer : addChild(pMsg) pMsg.m_lbl = CCLabelTTF : create("", "Tohoma", 35) pMsg : addChild(pMsg.m_lbl) pMsg : setText(text) pMsg : setOpacity(0) pMsg.m_lbl : setOpacity(0) local ptOri = ccp(pMsg : getPosition()) local dtPos = ccp(0, 50) pMsg : setPosition(ccp(ptOri.x, ptOri.y - dtPos.y)) pMsg : setVisible(true) -- 创建移动动画 local moveByIn = CCMoveBy : create(0.2, dtPos) local moveByOut = CCMoveBy : create(0.2, dtPos) -- 由无变亮、由亮变无 local in1 = CCFadeIn:create(0.2) local out1 = CCFadeOut:create(0.2) local spwanIn = CCSpawn : createWithTwoActions(moveByIn, in1) local spwanOut = CCSpawn : createWithTwoActions(moveByOut, out1) local delay = CCDelayTime:create(2.0) -- 消失动作 local fun = CCCallFuncN : create(call_hide) -- 最终组合动作 local seqArr = CCArray : create() seqArr : addObject(spwanIn) seqArr : addObject(delay) seqArr : addObject(spwanOut) seqArr : addObject(fun) local seq = CCSequence:create(seqArr) pMsg : runAction(seq) local in2 = CCFadeIn:create(0.2) local out2 = CCFadeOut:create(0.2) local delay2 = CCDelayTime:create(2.0) local seqArr2 = CCArray : create() seqArr2 : addObject(in2) seqArr2 : addObject(delay) seqArr2 : addObject(out2) local seq2 = CCSequence:create(seqArr2) pMsg.m_lbl : runAction(seq2)endfunction CMessage:ctor()endreturn CMessage
三、CResource.lua
local winSize = CCDirector : sharedDirector() : getVisibleSize()-- 定义主场景资源类RcMainScene = {}RcMainScene.m_bg = {name = "bg.jpg", pos = ccp(winSize.width / 2.0, winSize.height / 2.0)}RcMainScene.m_cityMenu = {name = "", pos = ccp(winSize.width / 2.0, winSize.height / 2.0), tag = 100}RcMainScene.m_mine = {name = "4.png", pos = ccp(-310.3, 130.6),tag = 101}RcMainScene.m_shop = {name = "2.png", pos = ccp(-306.7, -96.2), tag = 102}RcMainScene .m_workShop= {name = "10.png", pos = ccp(-123.1, -185.0), tag = 103}RcMainScene .m_bar = {name = "10.png", pos = ccp(107.3, -185.0), tag = 104}RcMainScene .m_chooseGen= {name = "6.png", pos = ccp(346.1, -120.2), tag = 105}RcMainScene .m_train = {name = "5.png", pos = ccp(348.5, 50.2), tag = 106}RcMainScene .m_trade = {name = "8.png", pos = ccp(242.9, 272.2), tag = 107}RcMainScene .m_inherit = {name = "11.png", pos = ccp(-9.1, 287.8), tag = 108}RcMainScene .m_genMap = {name = "14.png", pos = ccp(-252.7, 289.0), tag = 109}RcMainScene .m_shrine = {name = "13.png", pos = ccp(6.5, 52.6), tag = 110}-- 定义消息资源类RcMessage = {}RcMessage.m_fname = "msg.png"-- 云资源RcCloud = {}RcCloud.m_fname = "cloud.png"
四、scenes/MainScene.lua
require("app.CCloud")require("app.CMessage")require("app.CResource")local m_rc = RcMainScene-- 定义场景类local MainScene = class("MainScene", function() return display.newScene("MainScene")end)-- menuItem按钮请求回调函数local function call_select(tag, pSender) tag = tag - 100; local pCityName = {"矿区", "商店", "玉石作坊", "酒馆", "点将台", "校场", "贸易中心", "传承塔", "名将图鉴", "战神殿"} local pMsg = "没有开启【" .. pCityName[tag] .. "】,尽请期待!" -- CMessage : create(pSender : getParent() : getParent(), pMsg) local scene = pSender : getParent() : getParent() scene : testNet()end--功能:读取文件--输入:文件名--输出:屏幕上一行一行显示文件里的内容local function readFile(filename) local rFile = io.open(filename, "r") assert(rFile) for str in rFile.lines() do print(str) end rFile : close()end--功能:写入文件--输入:文件名, 内容--输出:生成的文件里面包含内容local function writeFile(filename, info) local wfile=io.open(filename, "w")--写入文件(w覆盖) assert(wfile) --打开时验证是否出错 wfile:write(info) --写入传入的内容 wfile:close() --调用结束后记得关闭end-- 请求结束function MainScene : call_request(event, name) local ok = (event.name == "completed") local request = event.request if not ok then -- 请求失败,显示错误代码和错误消息 CMessage : create(self, "请求失败,代码" .. request:getErrorCode() .. request:getErrorMessage()) return end local code = request:getResponseStatusCode() if code ~= 200 then -- 请求结束,但没有返回 200 响应代码 CMessage : create(self, "请求失败, 没有返回200 响应代码") return end -- 请求成功,显示服务端返回的内容 local resStr = request : getResponseData() local path = CCFileUtils : sharedFileUtils() : getWritablePath() .. name ..".png" writeFile(path, resStr) CMessage : create(self, "成功从【" .. name .."】请求数据") --从写入的文件中读取图片 local sprite = CCSprite : create(path) sprite : setPosition(display.cx, display.cy) self : addChild(sprite) sprite : runAction(CCScaleTo : create(1.0, 0))endfunction MainScene : addItemToMenu(menu, res, handler) local item = CCMenuItemImage : create(res.name, res.name) item : setTag (res.tag) item : setPosition(res.pos) if handler then item : registerScriptTapHandler( handler ) end menu : addChild(item)endfunction MainScene : testNet() local url = {"http://www.baidu.com/img/bdlogo.gif", "http://search.sina.com.cn/images/logo_new.png", "http://img3.cache.netease.com//war/2012/11/01/index/logo-war-107.gif"} local name = {"百度", "新浪", "网易"} math.randomseed( os.time() ) local r = math.random(1, 3) local request = network.createHTTPRequest(function(event) self : call_request(event, name[r]) end, url[r], "GET") -- request : addPOSTValue("KEY", "VALUE") request : start()endfunction MainScene:ctor() -- 添加一张背景图 local bg = display.newSprite(m_rc.m_bg.name, display.cx, display.cy) self:addChild(bg) self:markAutoCleanupImage(m_rc.m_bg.name) -- 添加菜单 local menu = CCMenu : create() menu : setPosition(m_rc.m_cityMenu.pos) self : addChild(menu) --添加云 CCloud : create(self) CCloud : create(self) CCloud : create(self) -- 添加图片按钮menuItem self : addItemToMenu(menu ,m_rc.m_mine, call_select) self : addItemToMenu(menu ,m_rc.m_shop, call_select) self : addItemToMenu(menu ,m_rc.m_workShop, call_select) self : addItemToMenu(menu ,m_rc.m_bar, call_select) self : addItemToMenu(menu ,m_rc.m_chooseGen,call_select) self : addItemToMenu(menu ,m_rc.m_train, call_select) self : addItemToMenu(menu ,m_rc.m_trade, call_select) self : addItemToMenu(menu ,m_rc.m_inherit, call_select) self : addItemToMenu(menu ,m_rc.m_genMap, call_select) self : addItemToMenu(menu ,m_rc.m_shrine, call_select) endfunction MainScene:onEnter() if device.platform == "android" then -- avoid unmeant back self:performWithDelay(function() -- keypad layer, for android local layer = display.newLayer() layer:addKeypadEventListener(function(event) if event == "back" then app.exit() end end) self:addChild(layer) layer:setKeypadEnabled(true) end, 0.5) endendfunction MainScene:onExit()endreturn MainScene
0 0
- quick-cocos2d-x lua编写简单的场景
- Cocos2d-X 中quick----lua的跳转场景的实现
- quick-cocos2d-x简单模态框编写
- lua QUICK-COCOS2D-X
- cocos2d-x lua 场景的创建
- quick-cocos2d-x lua中碰撞检测的实现
- quick-cocos2d-x lua 触摸事件、操作文件的实例
- cocos2d-x quick 导出c++到Lua
- quick-cocos2d-x(lua) 文件拷贝操作
- quick cocos2d-x lua解析json文件
- quick lua cocos2d-x 屏幕 旋转 布局
- cocos2d-x(quick-lua)读取csv文件
- quick-cocos2d-x中Lua调用JAVA
- 【quick-cocos2d-x】Lua 语言基础
- quick-cocos2d-x-2.2.1-rc 中用lua编写一个CCScrollView
- 谈谈对quick-cocos2d-x和cocos2d-x lua的区别理解
- 谈谈对quick-cocos2d-x和cocos2d-x lua的区别理解
- lua、quick-cocos2d-x(lua)、lua基本语法、lua类的实现、lua类的继承【新手必读】
- nyoj-49-开心的小明
- expression:stream!=NULL
- Executors
- Gson 解析 json 的一些注意点
- windows不规则窗体的编程实现
- quick-cocos2d-x lua编写简单的场景
- 交流电的一些概念
- Oralce和sql分页查询
- ubuntu交叉编译环境搭建
- WordPress核心文件功能及其载入
- C语言单链表常见操作系列
- Hibernate自动生成实体类注解
- CASS学习(地形图入库)
- C# 抽象类和抽象方法