【问题标题】:Cocos2d-x v3 Cannot override forward function DrawCocos2d-x v3 无法覆盖转发函数Draw
【发布时间】:2014-05-09 05:11:29
【问题描述】:
//in my .h file
virtual void draw();

//in .cpp
void GameLayer:draw()
{
   Layer::draw();
   //draw code goes here
}

显示不能覆盖转发函数 node::draw()

据我所知,它适用于旧版本。 cocos2d-x 3.0有什么新方法吗?

提前致谢。

【问题讨论】:

  • m c++ 生锈了,但我认为您只需要删除该方法的 .h 声明,毕竟它已经在节点的标头中声明了
  • No boss,从 .h 中删除会在 .cpp 上显示相同的错误

标签: cocos2d-x cocos2d-x-3.0


【解决方案1】:

在 v3.0 中覆盖 draw() 方法已更改。

在 .h 中尝试:

virtual void draw(Renderer* renderer, const kmMat4& transform, bool transformUpdated);

在 cpp 中尝试:

void draw(Renderer* renderer, const kmMat4& transform, bool transformUpdated)
{

}

如果您从 GitHub 运行最新版本 3.1,这已经改变。将kmMat4 替换为Matrix

编辑:也许你需要命名它:cocos2d::Renderer

【讨论】:

  • 我记得在我的项目中尝试过这个并获得Renderer object not recognized,就好像该对象在 cocos2d 中是 Node 的本地对象,并且没有通过导入 cocos2d.h 暴露出来
  • 你能告诉我错误吗?渲染器是非常核心的。应该没有理由不“暴露”
  • 如果我尝试重写此方法,我只会得到syntax error: identifier 'Renderer',而#include cocos2d.h 在顶部。
猜你喜欢
  • 2014-04-28
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多