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
- setDesignResolutionSize(designSize.width, designSize.height, cc.ResolutionPolicy.NO_BORDER) 的最后一个参数的含义:所需的分辨率策略。有以下几种选择
- EXACT_FIT通过拉伸拟合填充屏幕:如果设计分辨率与屏幕分辨率的宽高比不同,则游戏视图将被拉伸。
- NO_BORDER没有黑色边框的全屏幕:如果设计分辨率与屏幕分辨率的宽高比不同,游戏视图的两个区域将被剪切。
- SHOW_ALL带黑色边框的全屏幕:如果设计分辨率与屏幕分辨率的宽高比例不同,则会显示两个黑色边框。
这是自己第一次把学习进度发表在博客当中,虽然内容只是简单的将函数在API中查找并翻译出来,但是希望自己也能通过这种方式获得知识的积累。同时也希望自己能够养成写博客的好习惯。