Quick Cocos2dx 场景转换问题

项目结构是这样子的:

主场景代码是这样子的:

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

function MainScene:ctor()
    self.layer = display.newLayer();
    self:addChild(self.layer)
    self.item0 = ui.newTTFLabelMenuItem({text = "START", size = 64, align = ui.TEXT_ALIGN_CENTER,
        x = display.cx, y = display.cy + 50,
         listener = function()
            print("Start touched")
            nexScene = display.newScene("AnotherScene");
            CCDirector:sharedDirector():replaceScene(CCTransitionFade:create(1, nexScene))
        end})

    self.item1 = ui.newTTFLabelMenuItem({text = "ABOUT", size = 64, align = ui.TEXT_ALIGN_CENTER,
        x=display.cx, y=display.cy,
         listener = function()
            print("About touched")
        end})

    self.item2 = ui.newTTFLabelMenuItem({text = "EXIT", size = 64, align = ui.TEXT_ALIGN_CENTER,
        x=display.cx, y=display.cy-50,
        listener = function()
            print("Exit touched")
            game.exit()
        end})
    self.menu = ui.newMenu({self.item0,self.item1,self.item2})
    self.layer:addChild(self.menu)
end

function MainScene:onEnter()
    self.layer:setTouchEnabled(true)
end

function MainScene:onTouch(event, x, y)
    print(event)
end

function MainScene:onExit()
end

return MainScene

新场景代码是这样子的:

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

function AnotherScene:ctor()
    print("Constructor of AnotherScene")
end

function AnotherScene:onEnter()
    print("Custom AnotherScene:onEnter")
    ui.newTTFLabel({text = "AnotherScene", size = 64, align = ui.TEXT_ALIGN_CENTER})
        :pos(display.cx, display.cy)
        :addTo(self)
end
return AnotherScene

可是点击点击START之后进入的是一个黑色的新场景,DEBUG内容如下:

根本就没有打印AnotherScene.lua ctor()onEnter()里面的提示内容。

经查验qucik cocos2dx源码,发现display.newScene("AnotherScene")新建了一个名为"AnotherScene"CCScene

而不是去取AnotherScene.lua,如下:

function display.newScene(name)
    local scene = CCSceneExtend.extend(CCScene:create())
    scene.name = name or "<unknown-scene>"
    return scene
end

于是将item0的listener的代码如下:

 print("Start touched")
            local AnotherScene = require("../scripts/app/scenes/AnotherScene")
            nexScene = AnotherScene:new();
            CCDirector:sharedDirector():replaceScene(CCTransitionFade:create(1, nexScene))

然后就正常了。

如下:

这也许就是脚本语言的便利与不便利之处了。

Quick Cocos2dx 场景转换问题

时间: 2024-11-05 06:14:56

Quick Cocos2dx 场景转换问题的相关文章

Quick Cocos2dx 场景对象基类实现

从使用Quick-Cocos2d-x搭建一个横版过关游戏(四)拷来个进度条类, 但是由于那个类有个bug,在setProgress里面self.fill是找不到的,所以我改进了一下,代码如下: 1 local Progress = class("Progress", function() 2 -- body 3 return display.newNode() 4 end) 5 6 function Progress:ctor(background, fill) 7 local pro

Mac下搭建quick cocos2d-x编译环境

前言 虽然之前已经写过了很多 Cocos2d-x 相关的教程和文档,但本次却是我第一次接触 Quick,第一次接触 Lua,所以此次的教程本人将站在一个初学者的角度(看到这里是不是想白眼我了,哈哈,别切啊!尽管第一次,但我身边可是有很多 Quick 大神的,廖大大也在旁边办公室,没准撒个娇大神就把他知道的全部要点倾囊相授了啦!),全方位的解析 Quick 的学习过程,并同大家一起学习如何利用 Quick-Cocos2d-x 开发一款属于自己的游戏,包教包会的哦. 好了,那么下面我们就开始进入正题

(10)场景转换(Transitions)

Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力.例如:淡入淡出,放大缩小,旋转,跳动等.从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果. 场景之间通过TransitionScene系列类来实现过渡跳转的效果.TransitionScene继承于Scene,该系列类主要是与场景切换特效相关的一些使用类.如TransitionFadeDown.TransitionPageTurn.TransitionJumpZoom等等. 下图是Transi

cocos2d-x 场景切换

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************* 今天终于把界面交上去了,~~o(>_<)o ~~,花费了好多时间... 做个  场景切换  来庆祝一下. PS:欢迎大家一起讨论呀~,共同加油! ********************************* 本文三部分: 1.前言 2.菜单按钮执行场景切换

场景转换(Transitions)

Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力.例如:淡入淡出,放大缩小,旋转,跳动等.从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果. 场景之间通过TransitionScene系列类来实现过渡跳转的效果.TransitionScene继承于Scene,该系列类主要是与场景切换特效相关的一些使用类.如TransitionFadeDown.TransitionPageTurn.TransitionJumpZoom等等. 下图是Transi

quick cocos2d-x重写消灭星星

之前学习过c++在cocos2d-x游戏引擎上实现的消灭星星游戏,为了熟悉quick cocos2d-x以及Lua语言,我使用2.1.4版本的quick cocos2d-x重写了消灭星星,不过只是实现了其基本的消除,移动,计分以及过关等功能,一些文字漂移.粒子特效等功能有待以后完善. 该游戏的界面非常简单,只有两个场景的切换,首先是一个开始场景,该场景下有一个背景图片以及一个按钮,点击该按钮可以进入到游戏场景界面.开始场景的主要实现代码如下: 1 function MainScene:ctor(

Quick Cocos2dx controller的初步实现

很久没有记笔记了,今天记一下,最近都在瞎忙活,都不知道自己干了些啥. 先来一张目前的效果图: 我的Controller是在官方的mvc sample的里面的PlayerDualController上更改的,所以很多地方还没来得及清理掉. 源码如下: 1 local PlayerController = class("PlayerController") 2 3 function PlayerController:ctor() 4 end 5 6 function PlayerContr

cocos2d-x场景效果切换

Cocos2d-x提供了很多场景间切换的效果 1.使用方法: ccTime t = 1.2;    CCScene * pScene = CCScene::node();    CCLayer *pLayer = new book_page1();    pLayer->autorelease();    pScene->addChild(pLayer);    CCTransitionFade* transitionScene = CCTransitionFade::transitionWi

Quick Cocos2dx 调试问题

最近由于忙了一段时间,忙完了之后又迷茫了这么久,然后终于开始继续Quick-x的学习之路了. 然后遇到了一个比较棘手的问题. 虽然照着官方mvc的例子敲代码,但是还是不停的报错,报错的问题下次集结成一个帖子发出来好了. 今次记录的是对于错误的DEUG方面的问题. 我的首选当然是Eclipse + LDT了,因为从业是自java而始,继而是AS,用得最熟的莫过与FB了. 参考的是官方的文章: 用 Eclipse LDT 调试 quick-cocos2d-x 游戏 但是,进行到配置player的时候