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

前端之家收集整理的这篇文章主要介绍了quick-cocos2d-x游戏开发【2】——项目结构分析、创建新场景前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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


几个proj.*文件夹就不用说了,是对应的平台的解决方案,res专门存放我们的游戏资源,scripts存放我们的lua代码,sources中有我们熟悉的AppDelegate类,我们主要常用的就两个文件夹,res和scripts(我这不是废话吗)


好吧,还是再打开scripts文件夹看下,

文件下有main.lua,它是程序lua脚本的启动文件

[plain] view plain copy
  1. function__G__TRACKBACK__(errorMessage)
  2. print("----------------------------------------")
  3. print("LUAERROR:"..tostring(errorMessage).."\n")
  4. print(debug.traceback("",2))
  5. print("----------------------------------------")
  6. end
  7. require("app.MyApp").new():run()--启动后执行MyApp脚本


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

    require("config")
  1. require("framework.init")
  2. localMyApp=class("MyApp",cc.mvc.AppBase)
  3. functionMyApp:ctor()
  4. MyApp.super.ctor(self)
  5. functionMyApp:run()
  6. CCFileUtils:sharedFileUtils():addSearchPath("res/")
  7. self:enterScene("MainScene")
  8. end
  9. returnMyApp

在run函数中,首先设置了文件资源的搜索路径,设置为res文件夹,接着进入第一个场景,也是脚本给我提供的MainScene.lua,在进入游戏画面前,程序还会初始化一些事情,可以看到第一行代码引入了config.lua,我们可以再接着打开config.lua文件

    --0-不输出任何调试信息,1-输出基本的调试信息,2-输出详细的调试信息
  1. DEBUG=1
  2. --设置是否在画面中显示渲染帧率等信息
  3. DEBUG_FPS=true
  4. --设置是否输出内存占用信息,true为每10秒一次
  5. DEBUG_MEM=false
  6. --是否载入过时的API定义
  7. LOAD_DEPRECATED_API=false
  8. --是否载入短代码API
  9. LOAD_SHORTCODES_API=true
  10. --屏幕方向
  11. CONFIG_SCREEN_ORIENTATION="landscape"
  12. --设计分辨率大小
  13. CONFIG_SCREEN_WIDTH=960
  14. CONFIG_SCREEN_HEIGHT=640
  15. --自动缩放模式
  16. CONFIG_SCREEN_AUTOSCALE="FIXED_WIDTH"

这里主要配置一下游戏的debug信息,FPS显示,屏幕方向,设计屏幕大小,以及适屏方案

有了这些的初始化,就会进入第一个场景了,再看下MainScene.lua

    localMainScene=class("MainScene",function()
  1. returndisplay.newScene("MainScene")
  2. end)
  3. functionMainScene:ctor()
  4. ui.newTTFLabel({text="Hello,World",size=64,align=ui.TEXT_ALIGN_CENTER})
  5. :pos(display.cx,display.cy)
  6. :addTo(self)
  7. functionMainScene:onEnter()
  8. functionMainScene:onExit()
  9. returnMainScene

MainScene的ctor是构造函数,一旦我们new一个对象实例时就会调用ctor,所以它是必须有的,这里面主要做一些场景的界面布局等等,在MainScene中引擎只画了一个文本在上面,就是上节中看到的Hello World。


在quick中,它弱化了层的地位,反而增强了场景的地位,我们在cocos2d-x中一般都是新建一个layer,游戏中的元素添加到这个layer中,而在quick中,往往我们为了简单些,会直接就添加到scene上。所以你会在samples中看到基本都是加在scene上。


好了,说了这么多,下面我们动手创建一个场景

在scenes文件夹中新建一个MyScene,仿照着MainScene.lua,我们敲点代码

    localMyScene=class("MyScene",248)"> returndisplay.newScene("myscene")
  1. functionMyScene:ctor()
  2. returnMyScene

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

在原来的Cocos2d-x项目中把那张HelloWorld.png图片复制一份到res文件夹下。

完整代码如下,

    display.newSprite("HelloWorld.png",display.cx,display.cy):addTo(self)
  1. returnMyScene

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



哈哈,够经典,够温馨吧,只是按钮没加,后面再说。大家也赶紧来试试吧。

如有错误之处,还请批评指出。

猜你在找的Cocos2d-x相关文章