【cocos2dx】「LWF」でエラーが出た場合の対処策

個人的なメモとして書きます。 以前に紹介した「LWF」なんですが、cocos2dxのバージョンが古いとビルドエラーがたくさん出ます。 主に、ライブラリ−の場所の変更やクラスの関数名の変更のために発生するモノです。

もし、このようなエラーが出た場合は参考にしてみてください。

'platform/CCPlatformMacros.h' file not found

このエラーは、[CCPlatformMacros]クラスの保存されている場所が違うために出てきます。 [c] //間違い platform/CCPlatformMacros.h

//正解 base/CCPlatformMacros.h

[/c]

Use of undeclared identifier 'getLineHeight'; did you mean 'getHeight'?

これは[Label]クラスの関数が変わっているために表示されます。 メッセージのように[getHeight]に変更をします。

'draw' marked 'override' but does not override any member functions

これはoverrideをする元の関数が無いよ、というエラーです。 これに関しては、正しい方法かわからないのですが、overrideを削除すればビルドできるようになりました。 「LWF」も無事動きます。 [c]

//virtual void draw(cocos2d::Renderer *renderer,const cocos2d::Mat4 &transform, uint32_t flags) override

//overrideを削除する virtual void draw(cocos2d::Renderer *renderer,const cocos2d::Mat4 &transform, uint32_t flags)

[/c]

'visit' marked 'override' but does not override any member functions

これも先ほどと同じようにoverrideを削除すれば大丈夫でした。

追記】 上記の方法では、lwfは再生できるのですが、開放時にエラーがでます。 cocos2dxのバージョンは3.11。 テクスチャアトラスを使っているので、以下の様に利用をしています。 [c] const char *path = "Hogehoge/hogehoge.lwf";

auto lwfNode = LWFNode::create(path); SpriteBatchNode *batch = SpriteBatchNode::createWithTexture(lwfNode->getTexture());

batch->addChild(lwfNode,10); this->addChild(batch,10);

[/c]

2014-12-24-fdsaa

【LWFとは】

cocos2d-xではじめるスマートフォンゲーム開発 [cocos2d-x Ver.3対応] for iOS/Androidcocos2d-xではじめるスマートフォンゲーム開発 [cocos2d-x Ver.3対応] for iOS/Android
三木 康暉

技術評論社 2014-12-27
売り上げランキング : 6972

Amazonで詳しく見る