質問: playerSize.width / 3.0; sprite->setPosition(Point(60,450)); sprite->setTextureRect(Rect(playerWidth * 2, 0, playerWidth, playerSize.height)); --------------------------------------------------------------------------------- error 'class cocos2d::Node' has no member named 'setTextureRect' というエラーが発生します。エラーの解決方法をお分かりの方ご教授ください。
回答: 原因はもちろん、ここです。 `error 'class cocos2d::Node' has no member named 'setTextureRect'` cocos2d::Nodeには、setTextureRectというメソッドはなく、cocos2d::Spriteにあります。 まず、getChildByTag()の戻り値が`cocos2d::Node*`なので、当然autoの型もcocos2d::Node*となります。 ``` auto sprite = this->getChildByTag(1); // これは以下と同じ cocos2d::Node* sprite = this->getChildByTag(1); ``` もちろん、sprite変数の実体はcocos2d::Sprite*ですが、このコード上ではNodeのインスタンスとして扱う事になるため、Spriteが持つメソッドは使えません。 解決策は、以下のようにデータ型を明示する事です。 ``` auto sprite = this->getChildByTag(1); ```