Error

C++博客 首页 新随笔 联系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

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变量,是不是每次返回的都将是同一个值?

posted on 2015-04-06 16:56 Enic 阅读(86) 评论(1)  编辑 收藏 引用 所属分类: 从零开始写棋牌游戏平台

评论

# re: cocos2dx-quick 01 2015-04-06 23:29 Enic
--class方法有两个参数,第一个参数是类名,第二个参数可以通过两种形式传入 --一种是传入一个函数,一种是传入一个Quick的类,或者Lua对象 --当传入函数时,新创建的类会以传入的函数作为构造函数,当传入的是一个对象时,会以传入的对象为父类派生下来。
  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理