cocos2dx lua 热更新
最近研究cocos2dx + lua 实现游戏的热更新。基本原理:比如我有一个GameScene,显示"hello world",现在热更新,更新之后显示"hello SB".如果是用c++来开发,那么只用把它作成lib库,更新时替换lib库。用lua的话,更简单,替换相关的lua就可以了。
GameScene.lua
require "Cocos2d"
require "Cocos2dConstants"
local GameScene = class("GameScene",function()
return cc.Scene:create()
end)
function GameScene.create()
local scene = GameScene.new()
scene:addChild(scene:createTitle())
return scene
end
function GameScene:ctor()
self.visibleSize = cc.Director:getInstance():getVisibleSize()
self.origin = cc.Director:getInstance():getVisibleOrigin()
self.schedulerID = nil
end
function GameScene:createTitle()
local title = cc.Label:createWithTTF("Hello World","fonts/arial.ttf",24)
title:setPosition(self.visibleSize.width /2,self.visibleSize.height /2)
return title
end
更新的 GameScene.lua

本文介绍了使用cocos2dx和lua实现游戏热更新的方法。通过替换lua脚本,例如GameScene.lua和MenuScene.lua,实现了游戏场景的文字更新。关键在于使用cc.AssetsManager进行资源的下载和更新,特别是在Android平台上需要注意保存路径的选择。
最低0.47元/天 解锁文章
6526

被折叠的 条评论
为什么被折叠?



