Lua 项目分析、创建新场景

创建完一个新项目之后,我们可以简单的看一看这个项目的文件组成,有这么一个文件层次结构

几个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脚本

启动后,执行MyApp脚本,并且调用run函数:

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文件:

-- 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:

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,我们敲点代码:

local MyScene = class("MyScene", function ()
    return display.newScene("myscene")
end)  

function MyScene:ctor()  

end  

return MyScene

这样就算新建了一个场景,咱们还是添加点温馨的画面吧,显示一下cocos2d-x经典的画面,在后面的笔记着再来解释添加精灵文本这些。

在原来的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

然后我们修改启动的第一个场景,在MyApp.lua中,修改self:enterScene("myscene"),记住这其中的字符串是之前创建的那个场景时填写的字符串,如果不一致会找不到该场景的。最后我们用player模拟器跑一下看下效果。

点击打开链接

时间: 2024-10-12 07:28:46

Lua 项目分析、创建新场景的相关文章

quick-cocos2d-x学习笔记【2】——项目结构分析、创建新场景

创建完一个新项目之后,我们可以简单的看一看这个项目的文件组成,有这么一个文件层次结构 几个proj.*文件夹就不用说了,是对应的平台的解决方案,res专门存放我们的游戏资源,scripts存放我们的lua代码,sources中有我们熟悉的AppDelegate类,我们主要常用的就两个文件夹,res和scripts(我这不是废话吗) 好吧,还是再打开scripts文件夹看下, 该文件下有main.lua,它是程序lua脚本的启动文件 function __G__TRACKBACK__(errorM

quick-cocos2d-x游戏开发【2】——项目结构分析、创建新场景

创建完一个新项目之后,我们能够简单的看一看这个项目的文件组成,有这么一个文件层次结构 几个proj.*目录就不用说了,是相应的平台的解决方式,res专门存放我们的游戏资源.scripts存放我们的lua代码,sources中有我们熟悉的AppDelegate类.我们主要经常使用的就两个目录.res和scripts(我这不是废话吗) 好吧,还是再打开scripts目录看下. 该文件下有main.lua,它是程序lua脚本的启动文件 function __G__TRACKBACK__(errorMe

Cocos2d-x如何添加新场景及切换新场景(包括场景特效)

做了一天多的工作终于把此功能搞定了,实际上添加新场景花费不了多少时间,时间主要花在切换到另一个场景的实现上,主要原因是编译时出现了一个错误,百思不得其解,后来经过查资料不断摸索才知道自己问题的所在,改正了错误编译通过,实现了我想要的结果,看着那个场景切换的自由和切换过程中各种特效的绚丽,看在眼里,乐在心里. 下面开始我的探索之路: 首先新建一个场景,其实你可以参考HelloWorld场景建立自己的场景,当然你在新的场景里实现的功能由你自己来定,下面贴上我的新建场景代码: SecondScene.

css3创建3D场景

浏览器本身是一个2维平面,对于3D的情况,实际上是增加了一个维度(深度),所以我们需要创建一个3D场景.这时浏览器不仅仅是一个平面了,更像是一个窗口,我们透过这个窗口去观察里面的三维世界.所谓的创建3D场景,就是告诉浏览器,我们是在这个窗口的哪个角度对这个3维世界进行观察,窗口里的3维物体距离这个窗口到底有多远. 设置好3D场景后,浏览器中的物体虽然已经变成是3维的了,但是如果我们不进行任何设置,他们看起来还是和二维的效果是一样的.所以我们需要使用一个新的属性 transform 来对这些元素进

cocos2d-x -3.81+win7+vs2013开发环境创建新的项目

cocos2d-x -3.81+win7+vs2013开发环境创建新的项目 1.准备阶段 (1) vs2013下载及安装 (2)cocos2d-x 3.8.1下载及解压 (3)python下载及安装(新版本cocos2d需要python创建工程) 2.编译cocos2d-x 3.8.1 (1) cocos2d-x 3.8.1解压后, 打开E:\cocos2d-x-3.8.1\build文件夹, 双击cocos2d-win32.sln打开解决方案. (2) 在解决方案准备就绪后, 右键cpp-te

cocos2d-x-3.2 怎样创建新project

1.在cocos2d-x-3.2\执行python命令 python setup.py //它的作用是将以下这些路径加入到你的用户环境变量中,当然你也能够不加入 COCOS_CONSOLE_ROOT = 'COCOS_CONSOLE_ROOT' NDK_ROOT = 'NDK_ROOT' ANDROID_SDK_ROOT = 'ANDROID_SDK_ROOT' ANT_ROOT = 'ANT_ROOT' //假设你已经将COCOS_CONSOLE_ROOT = "COCOS_CONSOLE_R

Three.js入门篇(一)创建一个场景

上一面讲述了向场景中添加物体对象.这一篇准备把每个功能点细细的讲述一遍,一方面是为了加深自己的理解.另一方面希望能够 帮助到有需要的人. 一.在学习WEBGL的时候,你应该先了解要创建一个WebGL程序需要哪些步骤.就跟弄梅菜扣肉一样,需要哪些步骤. 初始化WebGL绘图上下文 初始化着色器程序 建立模型和数据缓存 完成绘制和动画 这是一个面向过程编程.然而three.js不一样,是一个面向对象编程.主要构建三个对象 scene(场景) camera(相机) renderer(渲染器).. 这三

【新手入门】基于Cocos2d-x-2.2x 创建新项目(一)

来自:http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos2d-x-ch/manual/framework/native/v2/getting-started/setting-up-development-environments/windows-7-environment-setup/setup-win32-development-environment/zh.md 菜鸟阶段,为了便于自己创建cocos2d-x创

cocos2d-x-3.2 如何创建新工程

1.在cocos2d-x-3.2\运行python命令 python setup.py //它的作用是将下面这些路径加入到你的用户环境变量中,当然你也可以不添加 COCOS_CONSOLE_ROOT = 'COCOS_CONSOLE_ROOT' NDK_ROOT = 'NDK_ROOT' ANDROID_SDK_ROOT = 'ANDROID_SDK_ROOT' ANT_ROOT = 'ANT_ROOT' //如果你已经将COCOS_CONSOLE_ROOT = "COCOS_CONSOLE_R