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}
Binary file A-5-4-055722/graffle/test_part.graffle has changed
Binary file A-5-4-055722/pic/test_part.eps has changed