OpenFrameworks for Visual studio
提供:kuhalaboWiki
(版間での差分)
(→クラスの作成) |
(→クラスの作成) |
||
(1人の利用者による、間の27版が非表示) | |||
1行: | 1行: | ||
− | == | + | == 概要 == |
− | + | oFのリファレンス、チュートリアルは以下から参照できます。 | |
− | http://openframeworks. | + | http://openframeworks.cc/ |
− | + | == セットアップ == | |
+ | |||
+ | === Visual Studioの準備 === | ||
+ | 開発環境は Microsoft Visual Studio 2017を使います。 | ||
+ | Visual Studioを使用するにあたって、以下の準備をしてください。 | ||
+ | *以下のフォルダー内の全てのファイルを削除します。 | ||
+ | **Usersは「ユーザー」と表示されます。 | ||
+ | **AppDataは隠しファイルなので、エクスプローラーの「表示」メニューから「隠しファイル」にチェックを入れます。 | ||
+ | <pre> | ||
+ | C:\Users\ログイン名\AppData\Local\Microsoft\MSBuild\v4.0 | ||
+ | </pre> | ||
+ | * 上記の操作後、再起動してください。 | ||
− | + | === openFrameworksの準備 === | |
+ | * Windows Visual Studio版v0.9.2を使用します。 | ||
+ | * 以下のサイトからダウンロードしてください。 | ||
+ | ** http://openframeworks.jp/download/ | ||
+ | ** 「windows download openFrameworks for visual studio」をダブルクリックして、of_v0.9.2_vs_release.zipをダウンロードします。(約328MB) | ||
+ | * PC演習室のdeliveryドライブからも配布します。 | ||
− | of_v0. | + | * of_v0.9.2_vs_release.zipを解凍すると、of_v0.9.2_vs_releaseフォルダー(約1.6GB)ができます。 |
− | このフォルダーをして、自分のポータブルハードディスク、または、PC演習室の、seminarドライブのgenerativeフォルダー内に移動してください。 | + | * このフォルダーをして、自分のポータブルハードディスク、または、PC演習室の、seminarドライブのgenerativeフォルダー内に移動してください。 |
− | プログラム開発は、このof_v0. | + | * プログラム開発は、このof_v0.9.2_vs_releaseフォルダー(以下、ofフォルダーと略す)内で行います。 |
また、このofフォルダーを持ち歩けば、Visual Studioの入ったパソコンならどこでも、開発ができます。 | また、このofフォルダーを持ち歩けば、Visual Studioの入ったパソコンならどこでも、開発ができます。 | ||
18行: | 34行: | ||
** appsフォルダー MyAppsフォルダーに自作のプログラムを入れる。 | ** appsフォルダー MyAppsフォルダーに自作のプログラムを入れる。 | ||
** addonsフォルダー 機能を追加するときには、ここにアドオンを入れる。すでにいろいろ入っている。 | ** addonsフォルダー 機能を追加するときには、ここにアドオンを入れる。すでにいろいろ入っている。 | ||
+ | |||
+ | ; 0.9.2での変更点 | ||
+ | : https://qiita.com/2bbb/items/13f2e20760ec61e3ec89 | ||
== サンプルの実行 == | == サンプルの実行 == | ||
40行: | 59行: | ||
これをダブルクリックすると、プログラムが実行される。 | これをダブルクリックすると、プログラムが実行される。 | ||
− | == | + | == プロジェクトの作成 == |
− | # | + | # oFフォルイダー内のprojectGenerator-vsフォルダー内のprojectGenerator.exeを実行する。 |
− | # Name:に、プロジェクトの名前を入れる。 | + | # Project Name:に、プロジェクトの名前を入れる。 |
− | # Addons: | + | # Project Path:から保存先を確認する。通常は、変更しなくてよい。 |
− | # | + | # Addons:に、使用する追加機能(アドオン)を入れる。通常は、なしでよい。 |
+ | # Generateをクリックする。 | ||
# Apps内のMyAppsにマイプロジェクトが作成されている。 | # Apps内のMyAppsにマイプロジェクトが作成されている。 | ||
+ | # Open IDEをクリックした場合 | ||
+ | #* Visual Studio 2017が立ち上がることを確認する。(2015だとビルドできません) | ||
+ | # Closeをクリックした場合 | ||
+ | #* Apps内のMyAppsに作成したプロジェクトフォルダーを開く。 | ||
+ | #* プロジェクト名.slnファイルを右クリックして、「プログラムを開く」からVisual Studio 2017を起動する。 | ||
+ | # 「プロジェクトの再ターゲット」が出た場合、以下のように設定する。 | ||
+ | #* Windows SDK バージョン: 10.0.*** | ||
+ | #* プラットフォームツールセット: v141へのアップグレード | ||
+ | #* チェックボックスはそのまま | ||
# 作成したプロジェクトを起動し、srcを見てみる。 | # 作成したプロジェクトを起動し、srcを見てみる。 | ||
#* ofApp.xppのメソッドの中身が空っぽ。 | #* ofApp.xppのメソッドの中身が空っぽ。 | ||
53行: | 82行: | ||
== クラスの作成 == | == クラスの作成 == | ||
− | # 新しくクラスを作るには、'''「プロジェクト > 新しい項目の追加...」''' を開き,'''「C++ファイル」'''と'''「ヘッダーファイル」''' | + | # 新しくクラスを作るには、'''「プロジェクト > 新しい項目の追加...」''' を開き,'''「C++ファイル」'''と'''「ヘッダーファイル」'''を一つずつ作る。 |
− | #* 名前を それぞれ''' | + | #* 名前を それぞれ'''Xxx.cpp''','''Xxx.h'''とし、場所はともに '''..\src''' とする |
#* (注)「クラスの追加」や「クラスウィザード」は使えない。 | #* (注)「クラスの追加」や「クラスウィザード」は使えない。 | ||
− | # ソリューションエクスプローラー上の'''src'''の中に''' | + | # マウスカーソルをソリューションエクスプローラー上の'''src'''に置き、ハイライトさせる。 |
+ | # ソリューションエクスプローラー上の'''src'''の中に'''Xxx.cpp''' と '''Xxx.h''' が新規作成される。 | ||
− | ヘッダファイル ''' | + | ヘッダファイル '''Xxx.h''' は, |
<pre> | <pre> | ||
#pragma once | #pragma once | ||
#include "ofMain.h" | #include "ofMain.h" | ||
− | class | + | class Xxx { |
private: | private: | ||
ofPoint pos; | ofPoint pos; | ||
69行: | 99行: | ||
public: | public: | ||
− | + | Xxx(); | |
void hogehoge(); | void hogehoge(); | ||
}; | }; | ||
80行: | 110行: | ||
* '''private:''' に続く部分には,クラス内部のみで利用する変数、メソッドを宣言する。 | * '''private:''' に続く部分には,クラス内部のみで利用する変数、メソッドを宣言する。 | ||
* '''public:''' に続く部分には,クラス外部からアクセスできる変数、メソッドを宣言する。 | * '''public:''' に続く部分には,クラス外部からアクセスできる変数、メソッドを宣言する。 | ||
− | * ''' | + | * '''Xxx():''' はコンストラクターといい、クラスと同じ名前のメソッドである。クラスのインスタンスを生成するときの初期化処理などを記述する。 |
− | C++ファイル | + | C++ファイル Xxx.cpp は, |
<pre> | <pre> | ||
− | #include " | + | #include "Xxx.h" // クラスのヘッダーを読み込む |
− | + | Xxx::Xxx(){ | |
pos = ofPoint(ofGetWidth()/2, ofGetHeight()/2); | pos = ofPoint(ofGetWidth()/2, ofGetHeight()/2); | ||
radius = 100.0; | radius = 100.0; | ||
} | } | ||
− | void | + | void Xxx::hogehoge(){ |
ofSetColor(31, 63, 255, 100); | ofSetColor(31, 63, 255, 100); | ||
ofCircle(pos.x, pos.y, radius); | ofCircle(pos.x, pos.y, radius); | ||
101行: | 131行: | ||
などと、メソッドの本体を記述する。 | などと、メソッドの本体を記述する。 | ||
* メソッドの定義の最後にセミコロンが'''つかない'''ことに注意する。 | * メソッドの定義の最後にセミコロンが'''つかない'''ことに注意する。 | ||
+ | |||
+ | |||
+ | もとのcppファイルodApp.cppのヘッダーファイル'''ofApp.h'''に、Xxx.hをincludeする。 | ||
+ | 例えば、'''ofApp.h'''は、以下のとおり。 | ||
+ | <pre> | ||
+ | #pragma once | ||
+ | |||
+ | #include "ofMain.h" | ||
+ | #include "Ball.h" | ||
+ | |||
+ | class ofApp : public ofBaseApp{ | ||
+ | public: | ||
+ | bool mouse_pressed; | ||
+ | |||
+ | public: | ||
+ | void setup(); | ||
+ | void update(); | ||
+ | void draw(); | ||
+ | |||
+ | void keyPressed(int key); | ||
+ | void keyReleased(int key); | ||
+ | void mouseMoved(int x, int y ); | ||
+ | void mouseDragged(int x, int y, int button); | ||
+ | void mousePressed(int x, int y, int button); | ||
+ | void mouseReleased(int x, int y, int button); | ||
+ | void windowResized(int w, int h); | ||
+ | void dragEvent(ofDragInfo dragInfo); | ||
+ | void gotMessage(ofMessage msg); | ||
+ | |||
+ | Xxx myCbj; | ||
+ | }; | ||
+ | </pre> | ||
+ | '''public'''の領域に'''Xxxクラス'''のインスタンス'''myObj'''を宣言している。 | ||
[[Category:授業]] | [[Category:授業]] |
2017年10月17日 (火) 08:38時点における最新版
目次 |
[編集] 概要
oFのリファレンス、チュートリアルは以下から参照できます。
[編集] セットアップ
[編集] Visual Studioの準備
開発環境は Microsoft Visual Studio 2017を使います。 Visual Studioを使用するにあたって、以下の準備をしてください。
- 以下のフォルダー内の全てのファイルを削除します。
- Usersは「ユーザー」と表示されます。
- AppDataは隠しファイルなので、エクスプローラーの「表示」メニューから「隠しファイル」にチェックを入れます。
C:\Users\ログイン名\AppData\Local\Microsoft\MSBuild\v4.0
- 上記の操作後、再起動してください。
[編集] openFrameworksの準備
- Windows Visual Studio版v0.9.2を使用します。
- 以下のサイトからダウンロードしてください。
- http://openframeworks.jp/download/
- 「windows download openFrameworks for visual studio」をダブルクリックして、of_v0.9.2_vs_release.zipをダウンロードします。(約328MB)
- PC演習室のdeliveryドライブからも配布します。
- of_v0.9.2_vs_release.zipを解凍すると、of_v0.9.2_vs_releaseフォルダー(約1.6GB)ができます。
- このフォルダーをして、自分のポータブルハードディスク、または、PC演習室の、seminarドライブのgenerativeフォルダー内に移動してください。
- プログラム開発は、このof_v0.9.2_vs_releaseフォルダー(以下、ofフォルダーと略す)内で行います。
また、このofフォルダーを持ち歩けば、Visual Studioの入ったパソコンならどこでも、開発ができます。
- ofフォルダーの構成
- exampleフォルダー サンプルプログラムが入っている。
- appsフォルダー MyAppsフォルダーに自作のプログラムを入れる。
- addonsフォルダー 機能を追加するときには、ここにアドオンを入れる。すでにいろいろ入っている。
[編集] サンプルの実行
ofフォルダー内のexampleフォルダーにはたくさんのサンプルプログラムが入っているので、いろいろ試してみるとよい。
例 graphicExample graphicExampleフォルダー内のgraphicExample.sln(ソルーション)または、graphicExample.vcxproj(VC++プロジェクト)をダブルクリックして、プロジェクトを立ち上げてみる。
- Visual studioではプログラムをプロジェクトという単位で管理する。複数のプロジェクトをまとめたものをソリューションという。この授業では、複数のプロジェクトからなるソリューションは扱わない。
Microsoft Visual Studioが立ち上がり、サンプルプログラムのプロジェクトが開かれる。
- ソリューションエクスプローラーに、プロジェクトの構成要素がリストされている。
- プログラム本体のソースコードはsrcに含まれている。
- main.cpp ofApp.cpp ofApp.hの3つのプログラムが基本。このうち、ofApp.cppが一番、重要。
- setup() update() draw() の流れでプログラムが実行される。
プログラムを実行してみる。
- ウィンドウの上部中央にある緑色の三角ボタンをクリックする。
binフォルダーには、実行形式exeファイルができている。 これをダブルクリックすると、プログラムが実行される。
[編集] プロジェクトの作成
- oFフォルイダー内のprojectGenerator-vsフォルダー内のprojectGenerator.exeを実行する。
- Project Name:に、プロジェクトの名前を入れる。
- Project Path:から保存先を確認する。通常は、変更しなくてよい。
- Addons:に、使用する追加機能(アドオン)を入れる。通常は、なしでよい。
- Generateをクリックする。
- Apps内のMyAppsにマイプロジェクトが作成されている。
- Open IDEをクリックした場合
- Visual Studio 2017が立ち上がることを確認する。(2015だとビルドできません)
- Closeをクリックした場合
- Apps内のMyAppsに作成したプロジェクトフォルダーを開く。
- プロジェクト名.slnファイルを右クリックして、「プログラムを開く」からVisual Studio 2017を起動する。
- 「プロジェクトの再ターゲット」が出た場合、以下のように設定する。
- Windows SDK バージョン: 10.0.***
- プラットフォームツールセット: v141へのアップグレード
- チェックボックスはそのまま
- 作成したプロジェクトを起動し、srcを見てみる。
- ofApp.xppのメソッドの中身が空っぽ。
- ここにプログラムを書いていく。
[編集] クラスの作成
- 新しくクラスを作るには、「プロジェクト > 新しい項目の追加...」 を開き,「C++ファイル」と「ヘッダーファイル」を一つずつ作る。
- 名前を それぞれXxx.cpp,Xxx.hとし、場所はともに ..\src とする
- (注)「クラスの追加」や「クラスウィザード」は使えない。
- マウスカーソルをソリューションエクスプローラー上のsrcに置き、ハイライトさせる。
- ソリューションエクスプローラー上のsrcの中にXxx.cpp と Xxx.h が新規作成される。
ヘッダファイル Xxx.h は,
#pragma once #include "ofMain.h" class Xxx { private: ofPoint pos; float radius; public: Xxx(); void hogehoge(); };
などと、記述する。
- ofMain.h をインクルードし、クラスの定義の最後にセミコロンがつくことに注意する。
- #pragma once は,このヘッダファイルを複数回読み込まないようにするためのもの。
- 括弧で囲まれた部分 {...} には,変数の宣言やメソッド(関数)の宣言を書く
- private: に続く部分には,クラス内部のみで利用する変数、メソッドを宣言する。
- public: に続く部分には,クラス外部からアクセスできる変数、メソッドを宣言する。
- Xxx(): はコンストラクターといい、クラスと同じ名前のメソッドである。クラスのインスタンスを生成するときの初期化処理などを記述する。
C++ファイル Xxx.cpp は,
#include "Xxx.h" // クラスのヘッダーを読み込む Xxx::Xxx(){ pos = ofPoint(ofGetWidth()/2, ofGetHeight()/2); radius = 100.0; } void Xxx::hogehoge(){ ofSetColor(31, 63, 255, 100); ofCircle(pos.x, pos.y, radius); ofSetColor(255, 0, 0, 200); ofCircle(pos.x, pos.y, radius); }
などと、メソッドの本体を記述する。
- メソッドの定義の最後にセミコロンがつかないことに注意する。
もとのcppファイルodApp.cppのヘッダーファイルofApp.hに、Xxx.hをincludeする。
例えば、ofApp.hは、以下のとおり。
#pragma once #include "ofMain.h" #include "Ball.h" class ofApp : public ofBaseApp{ public: bool mouse_pressed; public: void setup(); void update(); void draw(); void keyPressed(int key); void keyReleased(int key); void mouseMoved(int x, int y ); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg); Xxx myCbj; };
publicの領域にXxxクラスのインスタンスmyObjを宣言している。