global変数を作りたいとき
config.luaに追加したくないときとか
src/app/models/Enemy.lua
local Enemy = class("Enemy")
function Enemy:ctor(params)
self.name_ = params.name
self.attack_ = params.attack
end
return Enemy
src/app/GlobalConfig.lua
local Enemy = import(".models.Enemy")
cc.exports.GlobalConfig = {
enemylist = {
Enemy:create({name = "a1", attack = 10}),
Enemy:create({name = "a1", attack = 10}),
},
}
けつカンマできるのが楽でいい!!
src/main.lua
cc.FileUtils:getInstance():setPopupNotify(false)
cc.FileUtils:getInstance():addSearchPath("src/")
cc.FileUtils:getInstance():addSearchPath("res/")
require "config"
require "cocos.init"
require "app.GlobalConfig"
local function main()
require("app.MyApp"):create():run()
end
local status, msg = xpcall(main, __G__TRACKBACK__)
if not status then
print(msg)
end
src/app/MyApp.luaにrequreしたほうがいいのかも
src/app/views/MainScene.lua
local scheduler = cc.Director:getInstance():getScheduler()
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
MainScene.RESOURCE_FILENAME = "MainScene.csb"
function MainScene:onCreate()
scheduler:scheduleScriptFunc(function(dt)
GlobalConfig.enemylist[math.random(#GlobalConfig.enemylist)]
end, 1.0, false)
end
return MainScene
とかつかえる
luaでsingletonとかだと
src/app/models/User.lua
local User = class("User")
User.LEVEL = "USER_LEVEL"
User.NAME = "USER_NAME"
local instance = nil
function User:ctor()
self.level_ = cc.UserDefault:getInstance:getStringForKey(User.LEVEL, "1")
self.name_ = cc.UserDefault:getInstance:getStringForKey(User.NAME, "dummy")
end
function User.getInstance()
if not instance then
instance = User:create()
end
return instance
end
function User:getLevel()
return self.level_
end
function User:getName()
return self.name_
end
return User
User.getInstance():getName()
UserDefaultとかで用意されているのと違って:ではなく.になる
この定義もいいのかわるいのか
endをよく忘れてsyntacs errorになってどこの行か表示されなくてつらい
コードチェックをしてくれるものが欲しくなってくる