質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
COCOS2D-X

COCOS2D-Xは、 2Dゲームを手軽に開発できるフレームワークのことです。 iPhone(iOS)向け、Android等に対応しており、 実質ワンソースで開発が可能です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

248閲覧

cocos2d-x ver3.xx スケジュールファンクション内のコンパイルエラー

yoshitex

総合スコア7

COCOS2D-X

COCOS2D-Xは、 2Dゲームを手軽に開発できるフレームワークのことです。 iPhone(iOS)向け、Android等に対応しており、 実質ワンソースで開発が可能です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/05/08 04:39

開発環境

cocos2d-x ver3.x
言語 C++
最近プログラムを始めた初心者という前提でお願いいたします。
個人的にcocos2d-xを使ってC++でゲームを作っています。

キャラクターの画像変更についてコンパイル中にエラーが発生します。

発生している問題

scheduleファンクション内に下記コードを書いてコンパイルすると、

auto sprite = this->getChildByTag(1);
auto playerSize =sprite->getContentSize();
auto playerWidth = 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'
というエラーが発生します。エラーの解決方法をお分かりの方ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

原因はもちろん、ここです。
error 'class cocos2d::Node' has no member named 'setTextureRect'

cocos2d::Nodeには、setTextureRectというメソッドはなく、cocos2d::Spriteにあります。

まず、getChildByTag()の戻り値がcocos2d::Node*なので、当然autoの型もcocos2d::Node*となります。

cpp

1auto sprite = this->getChildByTag(1); 2 3// これは以下と同じ 4cocos2d::Node* sprite = this->getChildByTag(1);

もちろん、sprite変数の実体はcocos2d::Sprite*ですが、このコード上ではNodeのインスタンスとして扱う事になるため、Spriteが持つメソッドは使えません。

解決策は、以下のようにデータ型を明示する事です。

auto sprite = this->getChildByTag<Sprite*>(1);

投稿2018/05/08 05:33

mingos

総合スコア4025

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshitex

2018/05/08 06:03

無事にコンパイルが通りました。有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問