新手求各位有空的大哥帮我解决个小问题,困扰几天了,迫切!!

我使用的是3.3版本的。

目前是刚开始学习,所以在看简单示例----helloworld
我现在新建了一个layer,模仿了hellowold这个的写法
bool GameHelp::init()
{
if (!Layer::init())
{
return false;
}
LabelTTF * labhelp = LabelTTF::create(“please click screen to game”, “宋体”, 24);
labhelp->setPosition(Point(0, 280));
this->addChild(labhelp);
LabelTTF * labback = LabelTTF::create(“MainMenu”, “宋体”, 24);
MenuItemLabel * mlabel = MenuItemLabel::create(labback, this, menu_selector(GameHelp::menuBackToMain));
mlabel->setPosition(Point::ZERO);
Menu * mMenu = Menu::create(mlabel,NULL);
this->addChild(mMenu,1);

return true;

}

Scene * GameHelp::scene()
{
Scene * mScene = Scene::create();
Layer * mLayer = GameHelp::create();
mScene->addChild(mScene);
return mScene;
}

void GameHelp::menuBackToMain(Ref * pSender)
{
Director::getInstance()->replaceScene(HelloWorld::scene());
}
我这是按照一本书上的写法做的,使用vs2013调试,但是运行结果总是屏幕一片空白啊

Scene * GameHelp::scene()
{
Scene * mScene = Scene::create();
Layer * mLayer = GameHelp::create();
mScene->addChild(mScene);
return mScene;
}

/// 看到了么
mScene->addChild(mScene);

看到了,昨天发帖后就发现了这个小错误。
还是非常感谢你啊!
但是我很好奇发生错误了系统为什么不输出错误信息呢?

这个里面的机制解释起来比较复杂, 总的说起来意思就是, 节点可以添加节点为子节点, 只不过这里的子节点是本身而已, 从代码角度上看那句代码是没有错误的, 所以不会报错, 除非cocos引擎内部对这种情况做了处理, 但我们我们从逻辑角度上说, 一般不会把自己当做自己的子节点, 那只是程序员失误而已.

附:
Layer * mLayer = GameHelp::create();
你这个变量声明了, 但是没有使用, 一般编译器会给警告的(变量未使用警告), 所以还是比较明显的.

我是刚开始学习这个引擎的,我选择了3.3版本的,但是网络上的资料几乎都是2.x的,本来想做个贪吃蛇,照着2.2的版本的代码来做,但发现还是好多地方根本不兼容 比如说那个2.x版本里面不是每个Layer都有个draw()函数,但是在3.x里面我就没发现了,直接写draw()提示错误了,那么在3.x版本里面该如何更新画面呢?我看别人有使用一个函数 scheduleupdate(),好像是去调用自己的update()函数的,请问是这样来更新画面的吗?
麻烦你了,你有空的话就回,如果没有空的话可以放一放的,谢谢哈

没有经过2.x的摧残最好, 现在3.x简化了很多没有操作, 封装了更多东西, 我们只需要很简单的使用就行, 比原来好多了.

要学习cocos2d, 你只要把2d游戏的一些核心概念搞明白, 比如 scene, layer, node, sprite 等等.

我不建议你直接从网上下载一个某个项目来自己运行, 然后分析其源码什么的, 因为那些项目都参杂了很多项目逻辑, 会分去你学习引擎的精力(当然, 前提你的确是个新手).

如果你不是一个新手程序员, 之前有代码经验, 特别是C++经验, 那就很简单了, 搞明白上面说的2d游戏几个核心概念, 然后运行引擎里面的test项目, 一个个研究过去, 比如 Action(有很多动作, 可以一个一个抽出来放入自己的代码里试试), 这样, 你就会很快上手.

如果你是一个新手程序员, 我还是建议你去网上找找视频教程看看, 现在应该有很多3.x的教程, 还是比较容易找到的, 跟着教程来, 也很快的, 要不看书也行.

我之前做iOS的, cocos2d 看了一下午就开始做项目了, 说这个不是炫耀什么的, 是为了告诉你, 总体上引擎还是做的很好了, 上手特别容易, 千万不要抱着畏惧心理, 安安心心学就是了.

至于你说的提的问题, 我推荐你学3.x的, 如果你找到的网上的代码是2.x的, 你可以参考其逻辑部分和API的名称等, 虽然API有所变化, 但是仔细研究还是能够看出联系的. 你说的draw方法是图形绘制相关的, 平时我们做项目基本不会用到. 你说的更新画面我不太明白, update方法相当于是每个node的主循环, 每一帧调用一次, 里面可以做一些操作, 不一定是更新画面, 而且我们平时也不会特意在updata函数里面写, 都是用schedule(相当于在主循环里面插入一条分支), 不知道你能不能理解.

希望能帮到你.

现在才发现与了新的回复……
谢谢你的建议,说的非常好,这个学得很快,这个引擎确实封装得很好,不用学习太长时间就能做开发了。之前我学了一个月,自己仿照超级马里奥的源码,做了个仿照天天酷跑的游戏,几乎一模一样的(图片和音乐是原版的)。现在很少做这个了(本来主要是android这个方向),因为游戏的创意太重要了,自己没什么好的想法就会不怎么想去做