#contents

*新規仮想空間の作成 [#c6d40ee5]
ここではボールが弾むというシミュレーションを行う新しい仮想空間を作成します。
**ツリー構造 [#fea2aba6]
インストールしたパッケージのツリー構造は以下のようになります。

 sigverse-<version>
       |
       |---bin
       |---include
       |     └----sigverse       
       └---shared 
             └----sigverse
                     |----data
                     |----etc
                     |----jar
                     └----samples  
今回はsigverse-<version>/binを作業場所とします。
**エージェントコントローラの作成 [#b9411488]
SIGVerseの sigverse-<version>/binに移動します。
 $ cd ~/sigverse-<version>/bin
ここに新しいディレクトリを作成します。ディレクトリ名は何でも構いません。
 $ mkdir NewWorld
 $ cd NewWorld

次に簡単なエージェントコントローラを作成します。emacsまたはviなどのエディタを使って  MoveController.cppファイルを作成します。
 $ emacs MoveController.cpp

MoveController.cpp
 
 #include "Controller.h"
 #include "Logger.h"
 
 class MoveController : public Controller {
 public:
   double onAction(ActionEvent&);
 };
 double MoveController::onAction(ActionEvent &evt) {
   SimObj *obj = getObj(myname());
   obj->fz(1000); //z方向に力1000を設定
   return 5.0;
 }
 extern "C" Controller * createController() {
   return new MoveController;
 }


**コンパイル [#hf0f4b09]
次に先ほど作成したコードのコンパイルを行うためのmakefileを作成します。コンパイル時に必要な環境変数をここで設定します。

// emacs make.sh

//make.sh
// #!/bin/sh
 
// #SIGVerseソースの場所を指定します。
// export SIG_SRC="/home/<username>/sigverse-201003/include/sigverse"

// #コンパイルを行います。
// make clean
// make

 emacs Makefile

Makefile
 #SIGVerseソースコードの所在
 SIG_SRC  = /home/<username>/sigverse-<version>/include/sigverse
 
 #自作コード
 CPP_SRCS = MoveController.cpp
 
 #オブジェクトファイル
 OBJS     = MoveController.o
 
 #コンパイルを行います。
 $(OBJS): $(CPP_SRCS)
         g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -I$(SIG_SRC) -
 I$(SIG_SRC)/comm/controller  -fPIC shared -o $@   $<

Front page   New List of pages Search Recent changes   Help   RSS of recent changes