cocos-lua test 学习之 controller.lua

cocos-lua test 学习

controller.lua


-- avoid memory leak
collectgarbage("setpause", 100) 
collectgarbage("setstepmul", 5000)

----------------
-- run
CC_USE_DEPRECATED_API = true
require "cocos.init"

--创建导演单例对象
local director = cc.Director:getInstance()
--通过导演对象获取OpenGLView
local glView   = director:getOpenGLView()
if nil == glView then
    glView = cc.GLViewImpl:createWithRect("Lua Tests", cc.rect(0,0,900,640))
    director:setOpenGLView(glView)
end

--turn on display FPS 打开帧率显示
director:setDisplayStats(true)

--set FPS. the default value is 1.0/60 if you don't call this 设置帧率为60帧
director:setAnimationInterval(1.0 / 60)

local screenSize = glView:getFrameSize()

local designSize = {width = 480, height = 320}

--如果屏幕大小的高度超过320时
if screenSize.height > 320 then
    --创建资源大小表,宽为960,高为640
    local resourceSize = {width = 960, height = 640}
    --设置比例因子:资源大小高度/设计大小高度
    cc.Director:getInstance():setContentScaleFactor(resourceSize.height/designSize.height)
end
--设置设计分辨率大小
glView:setDesignResolutionSize(designSize.width, designSize.height, cc.ResolutionPolicy.NO_BORDER)

--获取文件工具
local fileUtils = cc.FileUtils:getInstance()

local function addSearchPath(resPrefix, height)
    --getSearchPaths() 获取搜索路径数组   返回:可能包含默认资源根路径前缀的搜索路径数组。
    local searchPaths = fileUtils:getSearchPaths()
    --在搜索路径前插入resPrefix
    table.insert(searchPaths, 1, resPrefix)
    --在搜索路径前插入resPrefix .. "cocosbuilderRes"
    table.insert(searchPaths, 1, resPrefix .. "cocosbuilderRes")

    if screenSize.height > 320 then
        --同上
        table.insert(searchPaths, 1, resPrefix .. "hd")
        table.insert(searchPaths, 1, resPrefix .. "ccs-res")
        table.insert(searchPaths, 1, resPrefix .. "ccs-res/hd")
    end

    --设置搜索路径
    fileUtils:setSearchPaths(searchPaths)

end

--添加搜索路径
addSearchPath("res/", screenSize.height)
addSearchPath("", screenSize.height)

require "mainMenu"

local scene = cc.Scene:create()
scene:addChild(CreateTestMenu())
--getRunningScene()获取当前正在运行的场景
if cc.Director:getInstance():getRunningScene() then
    cc.Director:getInstance():replaceScene(scene)
else
    cc.Director:getInstance():runWithScene(scene)
end

  1. setDesignResolutionSize(designSize.width, designSize.height, cc.ResolutionPolicy.NO_BORDER) 的最后一个参数的含义:所需的分辨率策略。有以下几种选择
    • EXACT_FIT通过拉伸拟合填充屏幕:如果设计分辨率与屏幕分辨率的宽高比不同,则游戏视图将被拉伸。
    • NO_BORDER没有黑色边框的全屏幕:如果设计分辨率与屏幕分辨率的宽高比不同,游戏视图的两个区域将被剪切。
    • SHOW_ALL带黑色边框的全屏幕:如果设计分辨率与屏幕分辨率的宽高比例不同,则会显示两个黑色边框。

这是自己第一次把学习进度发表在博客当中,虽然内容只是简单的将函数在API中查找并翻译出来,但是希望自己也能通过这种方式获得知识的积累。同时也希望自己能够养成写博客的好习惯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值