LoginSignup
3
3

More than 5 years have passed since last update.

cocos2dx lua 雑メモ2

Posted at

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になってどこの行か表示されなくてつらい
コードチェックをしてくれるものが欲しくなってくる

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3