Mercurial > hg > Papers > 2009 > koba-thesis
changeset 6:8454b822d557
A-5-4-055722.tex changed.
author | e055722 |
---|---|
date | Wed, 25 Feb 2009 10:37:04 +0900 |
parents | 071a23cb76fe |
children | 47d6428a0af6 |
files | A-5-4-055722/A-5-4-055722.tex A-5-4-055722/graffle/test_part.graffle A-5-4-055722/pic/test_part.eps |
diffstat | 3 files changed, 9 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/A-5-4-055722/A-5-4-055722.tex Wed Feb 25 08:21:56 2009 +0900 +++ b/A-5-4-055722/A-5-4-055722.tex Wed Feb 25 10:37:04 2009 +0900 @@ -62,12 +62,12 @@ \subsubsection{collision} オブジェクトの衝突判定を記述する。オブジェクト同士が触れた時に行う動作を決定する。例えばシューティングゲームなら弾丸が敵や自機に当たった時にダメージを受ける、ゲームオーバーになる、などの判定を行う。こちらも条件分岐により、set\_move\_collisionで状態遷移が可能である。 -\subsubsection*{} +\subsubsection{SceneGraphTree} SceneGraphを用いたゲームプログラムでは各オブジェクトはTree構造で繋がっている必要があり、各々のSceneGraphは addChildで子供となるSceneGraphの登録、addBrotherで同じ親を持つSceneGraphの登録を行い、親子関係を持つ。(図\ref{fig:sgbuild}) \begin{figure}[htbp] \includegraphics[width=8.5cm,height= 9.0cm]{pic/SGbuild.eps} -\caption{SGTree} +\caption{SceneGraphTree} \label{fig:sgbuild} \end{figure} @@ -75,8 +75,9 @@ \subsection{CppUnitとは} CppUnitはxUnitの一つであり、C++の単体テストを自動化するframe workである。 CppUnitの特徴は、テストケースを増やす事が容易であり、1つの事象に対して様々なテストケースを同時にテストする事が出来る。また、羅列したテストケースは一括で実行、結果の表示ができる。 - \subsection{ゲームプログラムのテスト} - 各オブジェクトのSceneGraphはその親や子、兄弟に対するアドレスを保持している。従って、あるオブジェクトのテストを行いたい場合は、そのオブジェクトのSceneGraphが含まれているTreeのRootを辿れば、オブジェクトのSceneGraphにある各パラメータを参照する事が出来る。そこで、Rootのアドレスを取得するgetSGP()という関数を作成した。getSGP()関数によって取得してきたRootのアドレスを使って、各オブジェクトが定義された通りにx,y,zの値を保持しているかテストを行った。(図\ref{fig:sgtest}) + \subsection{ゲームプログラムのテスト} + 3つのSceneGraphを持つオブジェクトのテストを行った。このオブジェクトは本体の他に左右にパーツを1つずつ持つ。 + 本体をTreeのrootとして左右のパーツがその子供になっている。ここで、各オブジェクトのSceneGraphはその親や子、兄弟に対するアドレスを保持している。従って、パーツオブジェクトのテストを行いたい場合は、そのオブジェクトのRootである本体から辿れば、オブジェクトの各パラメータを参照する事が出来る。そこで、Rootのアドレスを取得するgetSGP()という関数を作成した。getSGP()関数によって取得してきたRootのアドレスを使って、各オブジェクトが定義された通りにx,y,zの値を保持しているかテストした。(図\ref{fig:sgtest}) \begin{figure}[htbp] \includegraphics[width=8.5cm]{pic/test_part.eps} @@ -84,9 +85,11 @@ \label{fig:sgtest} \end{figure} -\section{評価} +テストの結果、全てのオブジェクトが定義されたx,y,zの値を保持している事が確認出来た。しかし、move,collision中の +各オブジェクトの座標は確認出来なかった。これはにテストを走らせた時点で全てのテストケースを同時にテストしている為である。 - +\section{評価} +前述した通り、CppUnitは羅列したテストケースを一括で実行、結果の表示を行うframe workである。しかし各オブジェクトの座標や傾き等はmoveやcollisionにより常に変化している。これらの動作をテストするにはCppUnitには不向きである。よって完全にオブジェクトの振る舞いをテストするには、move,collisionに対応した全く新しいテスト手法を考える必要がある。 \thispagestyle{fancy} \begin{thebibliography}{9}