SlideShare a Scribd company logo
1 of 27
バルーン
カラフルゴーストバスターズ 1
目次
1.表紙
2.目次
3.仕様
4.仕様するクラス
5〜8.ofAppクラス
9〜14.C_balloonクラス
15〜20.使用した書き方一覧 2
仕様
バルーンが画面上を漂っている。
マウスカーソルを動かして、カーソルがバルーンに当たると
バルーンが割れる。
3
使用するクラス
ofApp.h
ofApp.cpp<基となるクラス>
C_balloon.hpp
C_balloon.cpp<バルーンについてのクラス>
(C_calculation.hppとC_calculation.cpp<計算するクラス>)
*C_calculationクラスはC_balloonクラスの返り値を送る先
として使用する。
4
ofApp.h
変数を宣言する。
• ofVec2f型
• mMousePosition<マウスの座標>
• int型
• COUNT(静的変数)<配列mBalloonの個数>
• 自作クラスを参照する型
• mBalloon[]<C_balloonクラスを参照する変数>
• (mCalculation<C_calculationクラスを参照する変数>)
• bool型
• mMMinus
<C_balloonクラスのupdateBalloon関数の
返り値を代入する変数>
5
ofApp.cpp/setup
• 背景は黒色
• フレームレートは60回/秒
• C_balloonクラスのsetupBalloonl関数を
10回呼び出す。
6
ofApp.cpp/update
• マウスの座標をとって、変数mMousePosition
に代入する。
• C_balloonクラスのupdateBalloon関数を10回
呼び出して、その返り値をmMMinusに代入する。
• mCalculationクラスのupdateCalculation関数を、
mMMinusを引数として呼び出す。
7
ofApp.cpp/draw
• C_balloonクラスのupdateBalloon関数
を10回呼び出す。
8
C_balloon.hpp
引数を指定する。
• updateBalloon関数にはmMousePosition
とmTimeをofAppから持ってくる。
変数を宣言する。
• int型
• mNumber
<バルーンの種類をランダムに決める変数>
• mAlphaBlending<画像の透明度>
• mCount
<バルーンが割れて消えるまでのカウント>
• bool型
• mBroken<バルーンが割れたかどうか>
9
C_balloon.hpp(続き)
• ofVec2f型
• mPosition<バルーンの座標>
• mVelocity<バルーンの動く速度>
• ofImage型
• mBalloon1〜5<割れる前のバルーン1〜5の画像>
• mBalloon1〜5b <割れた後のバルーン1〜5の画像>
• ofSoundPlayer型
• mBrokenSound<バルーンが割れる音>
10
C_ballon.cpp/setupBalloon
• 割れる前のバルーンの画像1〜5を読み込む
<loadメソッド>
• 割れた後のバルーンの画像1〜5を読み込む
<loadメソッド>
• バルーンの種類をランダムで決める
<Randomメソッド>
• バルーンが割れる音を読み込む<loadメソッド>
• バルーンの座標の初期値をランダムに決めて
mPositionに代入。
画面全体の座標からランダムの座標をとる。
11
C_ballon.cpp
/setupBalloon(続き)
• バルーンの速度の初期値をランダムに決めてmVelocityに代入。
x,y座標共にー5〜5の間からランダムの値をとる。
• 透明度をつける。mAlphaBelendingの初期値は255。
• 最初はマウスカーソルはバルーンに当たっていないのでmBrokenの初期値はfalse
• 風船はまだ割れていないのでmCountの初期値は0
12
C_balloon.cpp/updateBalloon
当たり判定
• もし画像にマウスカーソルが当たったなら
変数mBroken にtrueを代入
• もしそうでない(マウスカーソルが画像の外)なら
変数mBrokenにfalseを代入
13
C_balloon.cpp
/updateBalloon(続き)
演出の間のカウント
• もしmBrokenがtrueなら
mCountが300以外の時は+1ずつカウントして、300の時はmCountに0を代入する。
• もしそうでない<mBrokenがfalse>なら
mCountが0と300以外の時は+1ずつカウントして、0と300の時はmCountに0を代入する。
再設定
• もし<mCount = 0かつmAlphaBlending = 0><バルーン再登場の直前>ならバルーン
の種類、座標、動く速度を再設定
14
C_balloon.cpp/updateBalloon
画像の透明度について
• もしmCount >= 120なら
画像は透明になっていく
<255から5ずつ引いて0にする>
• もし0 < mCount < 120なら
画像は不透明
• もしそれ以外<mCount = 0>なら
画像が不透明になっていく
<0に5ずつ加算して255にする>
15
C_balloon.cpp
/updateBalloon(続き)
バルーンを動かす
• バルーンが割れて消えるまで<mCountが1以上約170未満>以外の時なら
mPositionにmVelocityを足してバルーンを動かす。
反射
• もし画像が画面の端に来たなら、反射する
16
C_balloon.cpp
/updateBalloon(続き)
音
• もしmCountが1なら
playメソッドを実行する
→1回割れるごとに1回音が流れる
• もしmCountが1ならmMinusにtrue,それいがはfalseを代入
→すなわち、1回割れるごとに1回mMinusがtrueになる。
→mMinusをupdateBalloonの返り値とする。
17
C_balloon.cpp/drawBalloon
• 画像の透明度に変数mAlphaBlendingを指定。
18
C_balloon.cpp
/drawBalloon(続き)
• setupBalloonでランダムにとったmNumberの値によって、表示するバルーンの種類を変える。
<if文>
Ex. mNumberが1の時、mBalloon1とmBalloon1bを表示
• もしmBrokenが falseなら
• もしmCountが0なら
割れる前のバルーンを表示
• もしそうでない<mCount > 0, すなわち割れる演出の途中>なら
割れた後のバルーンを表示
• もしそうでない<mBroken が true>なら
割れた後のバルーンを表示
19
C_balloon.cpp/drawBalloon
続き<mNumber1〜5まで同じように>
20
21
完成!
使用した書き方一覧①
 変数の宣言 : 型 変数名;
 *型の例1. intは整数型、floatは実数型、ofVec2fは2次元のベクトルデータ型、boolは真偽値を入れる型
 *型の例2.ofImage型はofImageクラスを使う変数の型
 *型の例3.ofSoundPlayer型はofSoundPlayerクラスを使う変数の型
 *型の例4.自分が作ったクラスを使う変数の型の名前はクラス名
22
使用した書き方一覧②
 静的変数であることの宣言 : static const 型 変数名;
 配列の宣言 : 型 変数名[個数];
 関数orメソッドの宣言 : 型 関数orメソッド名(引数);
 *C++にはプロパティという機能はない。
23
使用した書き方一覧③
 クラスの関数orメソッドを呼び出す : <クラス名型の>変数名 関数orメソッド名(引数);
 *関数の例<ofAppクラスの場合> : setup、update、draw
 *メソッドの例<ofImageクラスの場合> : load<ファイル読み込み>、draw<表示>
 *メソッドの例<ofSoundPlayerクラスの場合> :
setVolume<音量調節>、play<サウンド再生>、setLoop<ループ再生するかどうか>
24
使用した書き方一覧④
 フレームレートの指定 : ofSetFrameRate<1秒間に何回実行するか>;
 背景の指定 : ofSetBackgroundColor(R, G, B); : *RGBの各値は0〜255
 ランダムな値の取得 : ofRandom(最小値, 最大値); : * 最小値と最大値の間の乱数を取る
 2次元のベクトルデータの値の指定の例 : 「<ofVec2f型の>変数.x 」 が変数のx座標を表す
25
使用した書き方一覧⑤
 透明度をつける<AlphaBlendingをONにする>: ofEnableAlphaBlending();
*OFバージョン0.8.0以降はデフォルトでONになっている
 描画色と透明度の設定 : ofSetColor(R, G, B,透明度); : * RGB、透明度の各値は0〜255
 演算子の例 :&&は「かつ」、||は「または」を意味する。
++は「+1」、変数 += 数は「変数に数を足した値を、変数に代入する」の意味。
26
使用した書き方一覧⑥
 条件分岐(if文): if(条件){
処理
}else if(条件){
処理
}else(条件){
処理
}
 繰り返し処理(while文):while(条件){
処理
}
条件に当てはまる間は繰り返し処理を実行
27

More Related Content

More from Atelier Frameworks

unity sprite animation (ハルフル)
unity sprite animation (ハルフル)unity sprite animation (ハルフル)
unity sprite animation (ハルフル)Atelier Frameworks
 
unity 画像の移動 (ハルフル)
unity  画像の移動 (ハルフル)unity  画像の移動 (ハルフル)
unity 画像の移動 (ハルフル)Atelier Frameworks
 
カラフルゴーストバスターズ「kinectでのモーション検出」
カラフルゴーストバスターズ「kinectでのモーション検出」カラフルゴーストバスターズ「kinectでのモーション検出」
カラフルゴーストバスターズ「kinectでのモーション検出」Atelier Frameworks
 
カラフルゴーストバスターズ「得点の計算」
カラフルゴーストバスターズ「得点の計算」カラフルゴーストバスターズ「得点の計算」
カラフルゴーストバスターズ「得点の計算」Atelier Frameworks
 
カラフルゴーストバスターズの演出「ゴースト」
カラフルゴーストバスターズの演出「ゴースト」カラフルゴーストバスターズの演出「ゴースト」
カラフルゴーストバスターズの演出「ゴースト」Atelier Frameworks
 
海さんぽ演出「サメ」
海さんぽ演出「サメ」海さんぽ演出「サメ」
海さんぽ演出「サメ」Atelier Frameworks
 
海さんぽ演出「サカナが寄ってくる」
海さんぽ演出「サカナが寄ってくる」海さんぽ演出「サカナが寄ってくる」
海さんぽ演出「サカナが寄ってくる」Atelier Frameworks
 
海さんぽ演出「光道と動画再生」
海さんぽ演出「光道と動画再生」海さんぽ演出「光道と動画再生」
海さんぽ演出「光道と動画再生」Atelier Frameworks
 
海さんぽ演出「メッセージボトル」
海さんぽ演出「メッセージボトル」海さんぽ演出「メッセージボトル」
海さんぽ演出「メッセージボトル」Atelier Frameworks
 
海さんぽ演出「長靴」
海さんぽ演出「長靴」海さんぽ演出「長靴」
海さんぽ演出「長靴」Atelier Frameworks
 
海さんぽ演出「サーフィンとカメ」
海さんぽ演出「サーフィンとカメ」海さんぽ演出「サーフィンとカメ」
海さんぽ演出「サーフィンとカメ」Atelier Frameworks
 
個人制作「球をよけるゲーム」
個人制作「球をよけるゲーム」個人制作「球をよけるゲーム」
個人制作「球をよけるゲーム」Atelier Frameworks
 
個人制作「もぐらたたき」
個人制作「もぐらたたき」個人制作「もぐらたたき」
個人制作「もぐらたたき」Atelier Frameworks
 
ヒカリノアトリエ演出「アバターと手から粒子」
ヒカリノアトリエ演出「アバターと手から粒子」ヒカリノアトリエ演出「アバターと手から粒子」
ヒカリノアトリエ演出「アバターと手から粒子」Atelier Frameworks
 
ヒカリノアトリエ演出「ヒカリの球を描く」
ヒカリノアトリエ演出「ヒカリの球を描く」ヒカリノアトリエ演出「ヒカリの球を描く」
ヒカリノアトリエ演出「ヒカリの球を描く」Atelier Frameworks
 

More from Atelier Frameworks (20)

unityでNuitrackを使う 
unityでNuitrackを使う unityでNuitrackを使う 
unityでNuitrackを使う 
 
unity sprite animation (ハルフル)
unity sprite animation (ハルフル)unity sprite animation (ハルフル)
unity sprite animation (ハルフル)
 
unity 画像の移動 (ハルフル)
unity  画像の移動 (ハルフル)unity  画像の移動 (ハルフル)
unity 画像の移動 (ハルフル)
 
カラフルゴーストバスターズ「kinectでのモーション検出」
カラフルゴーストバスターズ「kinectでのモーション検出」カラフルゴーストバスターズ「kinectでのモーション検出」
カラフルゴーストバスターズ「kinectでのモーション検出」
 
カラフルゴーストバスターズ「得点の計算」
カラフルゴーストバスターズ「得点の計算」カラフルゴーストバスターズ「得点の計算」
カラフルゴーストバスターズ「得点の計算」
 
カラフルゴーストバスターズの演出「ゴースト」
カラフルゴーストバスターズの演出「ゴースト」カラフルゴーストバスターズの演出「ゴースト」
カラフルゴーストバスターズの演出「ゴースト」
 
海さんぽ演出「波」
海さんぽ演出「波」海さんぽ演出「波」
海さんぽ演出「波」
 
海さんぽ演出「サメ」
海さんぽ演出「サメ」海さんぽ演出「サメ」
海さんぽ演出「サメ」
 
海さんぽ演出「サカナが寄ってくる」
海さんぽ演出「サカナが寄ってくる」海さんぽ演出「サカナが寄ってくる」
海さんぽ演出「サカナが寄ってくる」
 
海さんぽ演出「光道と動画再生」
海さんぽ演出「光道と動画再生」海さんぽ演出「光道と動画再生」
海さんぽ演出「光道と動画再生」
 
海さんぽ演出「メッセージボトル」
海さんぽ演出「メッセージボトル」海さんぽ演出「メッセージボトル」
海さんぽ演出「メッセージボトル」
 
海さんぽ演出「長靴」
海さんぽ演出「長靴」海さんぽ演出「長靴」
海さんぽ演出「長靴」
 
海さんぽ演出「氷」
海さんぽ演出「氷」海さんぽ演出「氷」
海さんぽ演出「氷」
 
海さんぽ演出「サーフィンとカメ」
海さんぽ演出「サーフィンとカメ」海さんぽ演出「サーフィンとカメ」
海さんぽ演出「サーフィンとカメ」
 
個人制作「球をよけるゲーム」
個人制作「球をよけるゲーム」個人制作「球をよけるゲーム」
個人制作「球をよけるゲーム」
 
Find the ball
Find the ballFind the ball
Find the ball
 
えさやり
えさやりえさやり
えさやり
 
個人制作「もぐらたたき」
個人制作「もぐらたたき」個人制作「もぐらたたき」
個人制作「もぐらたたき」
 
ヒカリノアトリエ演出「アバターと手から粒子」
ヒカリノアトリエ演出「アバターと手から粒子」ヒカリノアトリエ演出「アバターと手から粒子」
ヒカリノアトリエ演出「アバターと手から粒子」
 
ヒカリノアトリエ演出「ヒカリの球を描く」
ヒカリノアトリエ演出「ヒカリの球を描く」ヒカリノアトリエ演出「ヒカリの球を描く」
ヒカリノアトリエ演出「ヒカリの球を描く」
 

Recently uploaded

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 

Recently uploaded (7)

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 

カラフルゴーストバスターズの演出「バルーン」