🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

Box2D

Box2Dは、C++で記述された2D物理演算エンジン。C++以外にも多くの言語に移植されています。円形・多角形の物体の運動をシミュレーションすることが可能で、GUIで動作を確認できるテストベッドが付属されています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

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

Q&A

解決済

1回答

1053閲覧

openframeworksでのofxOpencvとofxBox2dの組み合わせプログラムのエラーについて

nggn64

総合スコア9

openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

Box2D

Box2Dは、C++で記述された2D物理演算エンジン。C++以外にも多くの言語に移植されています。円形・多角形の物体の運動をシミュレーションすることが可能で、GUIで動作を確認できるテストベッドが付属されています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

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

0グッド

0クリップ

投稿2019/10/17 10:47

前提・実現したいこと

openframeworksでのofxOpencvとofxBox2dの組み合わせプログラムを実行しようとしています。
ofApp.cppでBox2D初期設定について書いたのですが、ofxBox2dCircleにそれらのメンバーがないというようなエラーが出ました。直し方が分からないためご教授お願い致します。
visual studio 2017使用

発生している問題・エラーメッセージ

エラーメッセージ
E0135 class "ofxBox2dCircle" にメンバー "init" がありません
E0135 class "ofxBox2dCircle" にメンバー "setGravity" がありません
E0135 class "ofxBox2dCircle" にメンバー "createBounds" がありません
E0135 class "ofxBox2dCircle" にメンバー "setFPS" がありません
E0135 class "ofxBox2dCircle" にメンバー "checkBounds" がありません

該当のソースコード

C++
ソースコード
//Box2D初期設定
box2d.init(); //Box2Dの世界を初期化
box2d.setGravity(0, 1); //重力を設定、下に5の力
box2d.createBounds(0, 0, colorImg.width, colorImg.height); //画面を壁で囲む
box2d.setFPS(30); //30fpsで表示
box2d.checkBounds(true);

試したこと

ofApp.h のほうで何か付け加えなければならないと思い、色々調べてみましたが解決には至りませんでした。

補足情報(FW/ツールのバージョンなど)

以下が参考にしたソースコードです。
https://github.com/tado/BeyondInteraction_2nd_examples/tree/master/3%E2%80%934_h/src

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

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

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

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

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

guest

回答1

0

ベストアンサー

質問内容から推測すると、box2d はofxBox2dCircleクラスのインスタンスということでしょうか?
コードを見てみましたが、ofxBox2DCircle(および親クラスの ofxBox2dBaseShape)にはエラーの通り、それらの関数は定義されていないようです。
https://github.com/vanderlin/ofxBox2d/blob/master/src/ofxBox2dCircle.h
https://github.com/vanderlin/ofxBox2d/blob/master/src/ofxBox2dBaseShape.h

参考にしているサイトでは box2d はofxBox2dクラスのインスタンスとなっているので、この部分を修正すれば良さそうです。

【補足】
コードはマークダウン形式で記載すると読みやすくなります。また、この場合は.cppファイルだけでなく.hファイルの定義も掲載した方が良いですよ!

投稿2019/10/17 13:06

Kapustin

総合スコア1186

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

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

nggn64

2019/10/17 14:39

ofxBox2dCircleをofxBox2dに修正したところエラー表示が消えました。 ありがとうございました。 初めての投稿で、投稿の仕方に不安があったので【補足】を参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問