初のクラス

class testApp
 ├─ instance(object) insect <- class Insect

//testApp.h の class testApp の定義の前方(上の行)

class Insect{

public:

float posX; // 自分自身の位置 x
float posY; // 自分自身の位置 x
std::string name; // 自分自身の名前(あるいは文字情報)
ofImage *img; // 外部でロードしたイメージデータへの参照
ofTrueTypeFont *font; // 外部でロードしたフォントデータへの参照

void draw(){;} // 描画関数、現時点では何もしない{;}
void update(){;} // 状態を更新する関数、現時点では何もしない{;}

};

class testApp : public ofSimpleApp{

public:

void setup();
:
:
:
ofImage img;
ofTrueTypeFont font;

Insect insect; // ここでクラス(雛形)からインスタンス(オブジェクト)を作ります。

};

 

//------------------------------
//testApp.cpp

void testApp::setup (){

img.loadImage("release-development.png"); //ロードするファイル名を指定 dataフォルダの中にあるファイルを指定する。
font.loadFont("verdana.tif",9);  //ロードするフォントのファイル名を指定 dataフォルダの中にあるファイルを指定する。
:
:
//insectを(外部から)初期化している
insect
.poseX=0;
insect.poseX=0;
insect.name=0;
insect.img=&img; // 参照の連結
insect.font=&font; // 参照の連結

}

void testApp::draw(){

:
:
:
//インスタンス(オブジェクト)を使う:すべて外部からのアクセスによって使う
insect.font->drawString(insect.name, insect.poseX, insect.poseY);

//insect . font->drawString(insect . name, insect . poseX, insect . poseY);
//インスタンス(オブジェクト)insectの(.ドット)メンバーfontが参照する(->矢印)関数drawStringへの引数として()内へ、
//インスタンス(オブジェクト)insectの(.ドット)メンバーnameと、
//インスタンス(オブジェクト)insectの(.ドット)メンバーposXと、
//インスタンス(オブジェクト)insectの(.ドット)メンバーposYを与える。

//上記はわかりづらく間違えやすい。
// insect.draw(mouseX,mouseY); //として機能するように改造する。

}

verticalline コンストラクタ、デストラクタ
undeline

コンストラクタ: クラス名と同じ名前の関数です。クラスがインスタンス化(オブジェクト化)される時に実行されます。

class Insect{

public:

Insect(){

//初期の数値を与えておく
posXposY=0.0;
name="Protect Me From what I Want";

}

~Insect(){;;}

float posX; // 自分自身の位置 x
float posY; // 自分自身の位置 x
std::string name; // 自分自身の名前(あるいは文字情報)
ofImage *img; // 外部でロードしたイメージデータへの参照
ofTrueTypeFont *font; // 外部でロードしたフォントデータへの参照

void draw(){;} // 描画関数、現時点では何もしない{;}
void update(){;} // 状態を更新する関数、現時点では何もしない{;}

};

デストラクタ: クラス名先頭に~を付けた名前の関数です。インスタンス化(オブジェクト化)された後に、インスタンス(オブジェクト)が破棄される時に実行されます。

 

 c++ 別のファイルに記述してincludeするの種類

.h ヘッダファイル (.hxx なども同様)

クラスの定義を書く。

.cpp 実装ファイル (.cc , .cxx なども同様)

関数を実装する。

Insect::draw{

//ここに機能を記述

}

 

vl std ( Standard Template Library )
bd

本家  /   Standard Template Library プログラミング 日本語 (絶版書籍のweb公開版)

std::vector: 可変配列の使い方

std::vector<Insect> insectArray;

std::vector<配列に格納する型・クラス名> 配列の名前;

配列の後ろに要素を追加:

//5要素追加。
Insect inserct;
insectArray
.push_back( inserct );
insectArray.push_back( inserct );
insectArray.push_back( inserct );
insectArray.push_back( inserct );
insectArray.push_back( inserct );

//ブラケットのアクセス

for ( int i=0; i<insectArray.size(); i++)
{

std::cout << insectArray[ i ].name << std::endl;

}

//イテレータでのアクセス

std::vector<Insect>::iterator itr;

for(itr=insectArray.begin(); itr!= insectArray.end(); itr++)
{

std::cout <<itr->name << std::endl;

}

 

verticalline ofSoundPlayer
undeline

http://www.openframeworks.cc/documentation#ofSoundPlayer-about

//testApp.h ファイル--------------

ofSoundPlayer mySnd;

//testApp.cpp ファイル------------
// void testApp::setup()
{

mySnd.loadSound("データフォルダの中のサウンドファイル名");

}

wavfiles.zip

 

 sndObj

こちらユニバーサルバイナリのライブラリです。SndObjlib.zip フォルダをこのように配置してください。

pre release v0.05 x-code FAT
 ├─ apps
 ├─ blablib
 │    ├ SndObjLib
 │    ├ 
 ├─ libs
 └─ other

http://music.nuim.ie//musictec/SndObj/main.html

http://music.nuim.ie//musictec/man/SndObj/examples.html

blab_sndobj_template.zip

/////////////////////testApp.h///////////////////////

class testApp : public ofSimpleApp{

public:

void setup();
void update();
void draw();

HarmTable *table1;//(1024,1,SINE);
HarmTable *table2;
Oscilt *mod;//(&table1, 2.5f, 10000.f);
Oscili *oscil;//(&table1, 440.f, 10000.f, 0, &mod);
Oscili *oscil2;
SndRTIO *output;//(1, SND_OUTPUT);
SndThread sndthread;

};

///////////////////testApp.cpp///////////////////////

void testApp::setup(){

table1=new HarmTable(1024,1,BUZZ);
table2=new HarmTable(256,1,BUZZ);

mod=new Oscilt(table1, 2.5f, 10000.f);
oscil=new Oscili(table1, 45.f, 10000.f);//,0,mod);//, 0, mod);
oscil2=new Oscili(table2, 90.f, 10000.f);//, &blp);//, mod);
output=new SndRTIO(2, SND_OUTPUT);
output->SetOutput(1, oscil);
output->SetOutput(2, oscil2);

oscil->SetAmp(100);
oscil2->SetAmp(100);

// sound thread set-up

sndthread.AddObj(oscil);
sndthread.AddObj(oscil2);
sndthread.AddObj(output, SNDIO_OUT);

sndthread.ProcOn();

}