cocos2dx-quick 01

cocos2dx-quick 01

1.定义一个类:
local MyApp = class("MyApp", cc.mvc.AppBase)

2.构造函数:
ctor: 构造方法

3.调用基类构造函数:
MyApp.super.ctor(self)

4.enterScene场景跳转:
1)函数原型在AppBase中: enterScene(sceneName, args, transitionType, time, move)
  函数可以接收四个参数,lua语法允许少写参数,默认为nil
  sceneName是要跳转的场景名
  args是传给该场景的构造参数,args需要是一个table
  transitionType是场景切换的过度动画类型
  time是过度时间
  more是过度效果附加参数
2)实际调用会执行到如下代码:
  // 在Lua中字符串连接操作符是两个点 (`..´)
  // lua的require将会把.转义成路径分割符?转义成模块名
  local scenePackageName = self.packageRoot .. ".scenes." .. sceneName
  local sceneClass = require(scenePackageName)
  local scene = sceneClass.new(unpack(checktable(args)))
3)可以通过enterScene将指定的参数传递到指定场景的构造函数
  self:endterScene("MainScene", {“你好”, “cocos”})
  MainScene:ctor(arg1, arg2)
 
5.不一样的类定义?
local MainScene = class("MainScene", function()    
 return display.newScene("MainScene")
end)
这片代码是定义一个名为MainScene的场景类,并且赋值给local变量
1.display.newScene("MainScene")实际会调用底层代码创建一个没有名字的场景
2.NodeEvent可以控制一组事件是否开启监听
3.MainScene的最后一行是return MainScene,所以需要引用这个场景的时候值需要:
  local MainScene = require("app.scenes.MainScene");

 
 
 
Q1.“类定义”的两种写法具体的意义和区别是什么?

Q2.require会不会让被require的脚本重新执行一次,如果是return了模块中的lcoal变量,是不是每次返回的都将是同一个值?

你可能感兴趣的:(cocos2dx-quick 01)