创建完一个新项目之后,我们可以简单的看一看这个项目的文件组成,有这么一个文件层次结构
几个proj.*文件夹就不用说了,是对应的平台的解决方案,res专门存放我们的游戏资源,scripts存放我们的lua代码,sources中有我们熟悉的AppDelegate类,我们主要常用的就两个文件夹,res和scripts(我这不是废话吗)
好吧,还是再打开scripts文件夹看下,
该文件下有main.lua,它是程序lua脚本的启动文件
function __G__TRACKBACK__(errorMessage) print("----------------------------------------") print("LUA ERROR: " .. tostring(errorMessage) .. "\n") print(debug.traceback("", 2)) print("----------------------------------------") end require("app.MyApp").new():run() --启动后执行MyApp脚本
require("config") require("framework.init") local MyApp = class("MyApp", cc.mvc.AppBase) function MyApp:ctor() MyApp.super.ctor(self) end function MyApp:run() CCFileUtils:sharedFileUtils():addSearchPath("res/") self:enterScene("MainScene") end return MyApp
-- 0 - 不输出任何调试信息, 1 - 输出基本的调试信息, 2 - 输出详细的调试信息 DEBUG = 1 -- 设置是否在画面中显示渲染帧率等信息 DEBUG_FPS = true -- 设置是否输出内存占用信息,true为每10秒一次 DEBUG_MEM = false -- 是否载入过时的 API 定义 LOAD_DEPRECATED_API = false -- 是否载入短代码API LOAD_SHORTCODES_API = true -- 屏幕方向 CONFIG_SCREEN_ORIENTATION = "landscape" -- 设计分辨率大小 CONFIG_SCREEN_WIDTH = 960 CONFIG_SCREEN_HEIGHT = 640 -- 自动缩放模式 CONFIG_SCREEN_AUTOSCALE = "FIXED_WIDTH"
有了这些的初始化,就会进入第一个场景了,再看下MainScene.lua
local MainScene = class("MainScene", function() return display.newScene("MainScene") end) function MainScene:ctor() ui.newTTFLabel({text = "Hello, World", size = 64, align = ui.TEXT_ALIGN_CENTER}) :pos(display.cx, display.cy) :addTo(self) end function MainScene:onEnter() end function MainScene:onExit() end return MainScene
在quick中,它弱化了层的地位,反而增强了场景的地位,我们在cocos2d-x中一般都是新建一个layer,游戏中的元素添加到这个layer中,而在quick中,往往我们为了简单些,会直接就添加到scene上。所以你会在samples中看到基本都是加在scene上。
好了,说了这么多,下面我们动手创建一个场景
在scenes文件夹中新建一个MyScene,仿照着MainScene.lua,我们敲点代码,
local MyScene = class("MyScene", function () return display.newScene("myscene") end) function MyScene:ctor() end return MyScene
在原来的Cocos2d-x项目中把那张HelloWorld.png图片复制一份到res文件夹下。
完整代码如下,
local MyScene = class("MyScene", function () return display.newScene("myscene") end) function MyScene:ctor() display.newSprite("HelloWorld.png", display.cx, display.cy):addTo(self) ui.newTTFLabel({text = "Hello, World", align = ui.TEXT_ALIGN_CENTER, x = display.cx, y = display.height*0.9}):addTo(self) end return MyScene
哈哈,够经典,够温馨吧,只是按钮没加,后面再说。大家也赶紧来试试吧。
如有错误之处,还请批评指出。