quick-cocos2d-x游戏开发【2】——项目结构分析、创建新场景
2015-04-22 16:46
337 查看
创建完一个新项目之后,我们可以简单的看一看这个项目的文件组成,有这么一个文件层次结构
几个proj.*文件夹就不用说了,是对应的平台的解决方案,res专门存放我们的游戏资源,scripts存放我们的lua代码,sources中有我们熟悉的AppDelegate类,我们主要常用的就两个文件夹,res和scripts(我这不是废话吗)
好吧,还是再打开scripts文件夹看下,
该文件下有main.lua,它是程序lua脚本的启动文件
[plain] view
plaincopy
function __G__TRACKBACK__(errorMessage)
print("----------------------------------------")
print("LUA ERROR: " .. tostring(errorMessage) .. "\n")
print(debug.traceback("", 2))
print("----------------------------------------")
end
require("app.MyApp").new():run() --启动后执行MyApp脚本
启动后,执行MyApp脚本,并且调用run函数
[plain] view
plaincopy
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
在run函数中,首先设置了文件资源的搜索路径,设置为res文件夹,接着进入第一个场景,也是脚本给我提供的MainScene.lua,在进入游戏画面前,程序还会初始化一些事情,可以看到第一行代码引入了config.lua,我们可以再接着打开config.lua文件
[plain] view
plaincopy
-- 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"
这里主要配置一下游戏的debug信息,FPS显示,屏幕方向,设计屏幕大小,以及适屏方案
有了这些的初始化,就会进入第一个场景了,再看下MainScene.lua
[plain] view
plaincopy
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
MainScene的ctor是构造函数,一旦我们new一个对象实例时就会调用ctor,所以它是必须有的,这里面主要做一些场景的界面布局等等,在MainScene中引擎只画了一个文本在上面,就是上节中看到的Hello World。
在quick中,它弱化了层的地位,反而增强了场景的地位,我们在cocos2d-x中一般都是新建一个layer,游戏中的元素添加到这个layer中,而在quick中,往往我们为了简单些,会直接就添加到scene上。所以你会在samples中看到基本都是加在scene上。
好了,说了这么多,下面我们动手创建一个场景
在scenes文件夹中新建一个MyScene,仿照着MainScene.lua,我们敲点代码,
[plain] view
plaincopy
local MyScene = class("MyScene", function ()
return display.newScene("myscene")
end)
function MyScene:ctor()
end
return MyScene
这样就算新建了一个场景,咱们还是添加点温馨的画面吧,显示一下cocos2d-x经典的画面,在后面的笔记着再来解释添加精灵文本这些。
在原来的Cocos2d-x项目中把那张HelloWorld.png图片复制一份到res文件夹下。
完整代码如下,
[plain] view
plaincopy
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
然后我们修改启动的第一个场景,在MyApp.lua中,修改self:enterScene("myscene"),记住这其中的字符串是之前创建的那个场景时填写的字符串,如果不一致会找不到该场景的。最后我们用player模拟器跑一下看下效果。
哈哈,够经典,够温馨吧,只是按钮没加,后面再说。大家也赶紧来试试吧。
如有错误之处,还请批评指出。
几个proj.*文件夹就不用说了,是对应的平台的解决方案,res专门存放我们的游戏资源,scripts存放我们的lua代码,sources中有我们熟悉的AppDelegate类,我们主要常用的就两个文件夹,res和scripts(我这不是废话吗)
好吧,还是再打开scripts文件夹看下,
该文件下有main.lua,它是程序lua脚本的启动文件
[plain] view
plaincopy
function __G__TRACKBACK__(errorMessage)
print("----------------------------------------")
print("LUA ERROR: " .. tostring(errorMessage) .. "\n")
print(debug.traceback("", 2))
print("----------------------------------------")
end
require("app.MyApp").new():run() --启动后执行MyApp脚本
启动后,执行MyApp脚本,并且调用run函数
[plain] view
plaincopy
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
在run函数中,首先设置了文件资源的搜索路径,设置为res文件夹,接着进入第一个场景,也是脚本给我提供的MainScene.lua,在进入游戏画面前,程序还会初始化一些事情,可以看到第一行代码引入了config.lua,我们可以再接着打开config.lua文件
[plain] view
plaincopy
-- 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"
这里主要配置一下游戏的debug信息,FPS显示,屏幕方向,设计屏幕大小,以及适屏方案
有了这些的初始化,就会进入第一个场景了,再看下MainScene.lua
[plain] view
plaincopy
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
MainScene的ctor是构造函数,一旦我们new一个对象实例时就会调用ctor,所以它是必须有的,这里面主要做一些场景的界面布局等等,在MainScene中引擎只画了一个文本在上面,就是上节中看到的Hello World。
在quick中,它弱化了层的地位,反而增强了场景的地位,我们在cocos2d-x中一般都是新建一个layer,游戏中的元素添加到这个layer中,而在quick中,往往我们为了简单些,会直接就添加到scene上。所以你会在samples中看到基本都是加在scene上。
好了,说了这么多,下面我们动手创建一个场景
在scenes文件夹中新建一个MyScene,仿照着MainScene.lua,我们敲点代码,
[plain] view
plaincopy
local MyScene = class("MyScene", function ()
return display.newScene("myscene")
end)
function MyScene:ctor()
end
return MyScene
这样就算新建了一个场景,咱们还是添加点温馨的画面吧,显示一下cocos2d-x经典的画面,在后面的笔记着再来解释添加精灵文本这些。
在原来的Cocos2d-x项目中把那张HelloWorld.png图片复制一份到res文件夹下。
完整代码如下,
[plain] view
plaincopy
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
然后我们修改启动的第一个场景,在MyApp.lua中,修改self:enterScene("myscene"),记住这其中的字符串是之前创建的那个场景时填写的字符串,如果不一致会找不到该场景的。最后我们用player模拟器跑一下看下效果。
哈哈,够经典,够温馨吧,只是按钮没加,后面再说。大家也赶紧来试试吧。
如有错误之处,还请批评指出。
相关文章推荐
- quick-cocos2d-x游戏开发【2】——项目结构分析、创建新场景
- quick-cocos2d-x游戏开发【2】——项目结构分析、创建新场景
- quick-cocos2d-x游戏开发【1】——引擎结构总览和创建项目
- quick-cocos2d-x游戏开发【1】——引擎结构总览和创建项目
- quick-cocos2d-x游戏开发【1】——引擎结构总览和创建项目
- quick-cocos2d-x游戏开发【1】——引擎结构总览和创建项目
- 小小菜之Cocos2d-x游戏开发旅程——Lua之场景的创建
- 【iOS-cocos2d-X 游戏开发之四】Cocos2dX创建Android NDK新项目并编译导入Eclipse中正常运行! 推荐
- cocos2d-x游戏开发(二)之创建第一个项目
- 【Cocos2d-X游戏实战开发】捕鱼达人之游戏场景的创建(六)
- cocos2d-x游戏开发(二)之创建第一个项目
- cocos2d-x 3.x游戏开发学习笔记(2)--cocos2d-x 3.x文件目录结构分析
- 【Cocos2d-X游戏实战开发】捕鱼达人之加载场景的创建(五)
- 【Cocos2d-X游戏实战开发】捕鱼达人之开始场景的创建(三)
- quick-cocos2d-x游戏开发【5】——创建菜单
- 《Cocos2d-x游戏开发之旅》读书笔记2:学习创建游戏项目
- quick-cocos2d-x游戏开发【3】——display.newSprite创建精灵
- quick-cocos2d-x游戏开发【5】——创建菜单
- quick-cocos2d-x游戏开发【5】——创建菜单
- Cocos2d-x创建android项目(cocos2d-x游戏开发三)