3. ã“ã‚“ã«ã¡ã¯ç‰©ç†ä¸–界

ゲーム開発やãƒãƒœãƒƒãƒˆã®ç ”究者ã«ã‚‚使ã‚れã¦ã„るオープンソースã®ç‰©ç†è¨ˆç®—エンジンODE(Open Dynamics Engineã€ã‚ªãƒ¼ãƒ—ン ダイナミクスエンジン)をå¦ã¶ODEåˆç´šè¬›åº§ã®3回目ã§ã™ã€‚
今回ã¯ODEを使ã£ãŸã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®æµã‚Œã‚’動力å¦è¨ˆç®—ã‚’ä¸å¿ƒã«åŸºæœ¬çš„ãªAPIã¨é–¢é€£ä»˜ã‘ã¦èª¬æ˜Žã—ã¾ã™ï¼Žã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ ã¨ã—ã¦ã¯ï¼Œç‰©ç†ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§æœ€ã‚‚ç°¡å˜ãªç‰©ä½“ã®è½ä¸‹ã‚’å–り上ã’ã¾ã™ï¼Žãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®æ•™ç§‘書ã§ã¯åˆã‚ã®ä¾‹é¡Œã¯Hello Worldを表示ã™ã‚‹ä¾‹ãŒå®šç•ªã§ã™ã€‚ã“ã“ã§ã¯Hello Worldã®ç‰©ç†ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ç‰ˆã‚’紹介ã—ã¾ã™ï¼Ž
ODEを使ã£ãŸã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®æµã‚Œã‚’代表的ãªAPIã¨é–¢é€£ä»˜ã‘ã¦åˆ—挙ã—ã¾ã™ã€‚
- ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®æµã‚Œ
- æç”»ç”¨é–¢æ•°ãƒ‰ãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•ã®è¨å®š
- カメラã®è¨å®š dsSetViewPoint()
- カメラã®è¨å®š dsSetViewPoint()
- ODEã®åˆæœŸåŒ– dInitODE()
- 動力å¦è¨ˆç®—ã®ä¸–界worldã®ç”Ÿæˆ dWorldCreate()
- é‡åŠ›åŠ é€Ÿåº¦ã®è¨å®š dWorldSetGravity()
- 剛体ã®ç”Ÿæˆ
- 質é‡ã®è¨å®š dBodySetMass()
- ä½ç½®ã®è¨å®š dBodySetPosition()
- å§¿å‹¢ã®è¨å®š dBodySetRotation()
- 質é‡ã®è¨å®š dBodySetMass()
- シミュレーションループ(ã“ã®éƒ¨åˆ†ã¯ç¹°ã‚Šè¿”ã—実行ã•れる)
- 動力å¦è¨ˆç®—ã®å®Ÿæ–½ dWorldStep()
- シミュレーションã«å¿…è¦ãªå‡¦ç†ã‚’書ã
- 動力å¦worldã®ç ´å£Š dWorldDestroy()
- ODEã®çµ‚了 dCloseODE()
- æç”»ç”¨é–¢æ•°ãƒ‰ãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•ã®è¨å®š
- 動力å¦è¨ˆç®—
ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®æµã‚Œã§ã¯è‰²ã€…ãªAPIを使ã£ã¦ã„ã¾ã™ãŒã€ä»Šå›žã¯ç‰©ç†ã‚¨ãƒ³ã‚¸ãƒ³ã®æœ€ã‚‚é‡è¦ãªå‹•力å¦è¨ˆç®—ã®ï¼¡ï¼°ï¼©ã«ã¤ã„ã¦èª¬æ˜Žã—ã¾ã™ã€‚動力å¦è¨ˆç®—ã‚’ã™ã‚‹APIã¯dWorldStep()ã¨dWorldQuickStep()ã§ã™ï¼Žé•ã„ã¯dWorldStep()ã®æ–¹ãŒç²¾åº¦ã¯é«˜ã„ã§ã™ãŒé€Ÿåº¦ã¯é…ã,dWorldQuickStep()ã¯ãã®é€†ã§ã™ï¼ŽdWorldStep()ã¨dWorldQuickStep()ã§ã¯ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®çµæžœãŒé•ã†ã®ã§ï¼Œé€Ÿåº¦ã«å•題ãªã‘れã°ç²¾åº¦ã®é«˜ã„dWorldStep()を使ã£ã¦ãã ã•ã„.ã“れらã®APIã¯ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§æ¯Žå›žå‘¼ã³å‡ºã•ãªã‘れã°ã„ã‘ãªã„ã®ã§ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ ã®ã‚ˆã†ã«simLoop関数ã®ä¸ã§å‘¼ã³å‡ºã—ã¦ãã ã•ã„.
- void dWorldStep(dWorldID, dReal stepsize)ï¼›
- void dWorldQuickStep(dWorldID, dReal stepsize);
- void dWorldSetQuickStepNumIteration(dWorldID, int num);
シミュレーションを引数stepsieze[s]ã ã‘1ステップ進ã‚ã¾ã™ã€‚stepsizeã¯æ•°å€¤ç©åˆ†ã®æ™‚間刻ã¿å¹…ã€å˜ä½ã¯ç§’。大ãã„ã¨ç²¾åº¦ãŒæ‚ªããªã‚Šã¾ã™ãŒã€ã‚¹ãƒ”ードã¯é…ããªã‚Šã¾ã™ã€‚
シミュレーションを引数stepsize [s] ã ã‘1ステップ進ã‚ã¾ã™ã€‚ä¸Šã¨æ©Ÿèƒ½ã¯åŒã˜ã§ã™ãŒã€dWorldStep()よりã¯é«˜é€Ÿã§ã™ãŒã€ç²¾åº¦ã¯é«˜ããªã‚Šã¾ã™ï¼Ž
dWorldQuickStep()ã®ç¹°ã‚Šè¿”ã—計算ã®å›žæ•°ã‚’è¨å®šã—ã¾ã™ï¼Žnumã®å€¤ã‚’大ããã™ã‚‹ã¨ç²¾åº¦ã¯é«˜ããªã‚Šã¾ã™ãŒé€Ÿåº¦ã¯é…ããªã‚Šã¾ã™ï¼Žã“ã®APIを呼ã³å‡ºã•ãªã„å ´åˆï¼Œã¤ã¾ã‚Šnumã®ãƒ‡ãƒ•ォルト値ã¯20ã§ã™ï¼Žä¸€èˆ¬çš„ã«ã¯dsSimulationLoop()を呼ã³å‡ºã™å‰ã«æŒ‡å®šã—ã¾ã™ï¼Ž
- ソースコード
次ã«ã€è©³ã—ã„コメントã®ã¤ã„ãŸã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’以下ã«ç¤ºã—ã¾ã™ã€‚main関数ã‹ã‚‰èªã‚“ã§ãã ã•ã„。ãªãŠï¼Œæ–‡å—化ã‘ã™ã‚‹ãŸã‚ã«ä¸€éƒ¨å…¨è§’æ–‡å—を使ã£ã¦ã„ã¾ã™ï¼Žã‚«ãƒƒãƒˆã‚¢ãƒ³ãƒ‰ãƒšãƒ¼ã‚¹ãƒˆã§ã¯ãªã,ã“ã“ã‹ã‚‰ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ 3をダウンãƒãƒ¼ãƒ‰ã—ã¦ãŠè©¦ã—ãã ã•ã„.
// Hello World  by ã§ã‚€
#include <ode/ode.h>   // ODEã®ãƒ˜ãƒƒãƒ€ãƒ¼ãƒ•ァイル(動力å¦è¨ˆç®—用)
#include <drawstuff/drawtuff.h> // ドãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•ヘッダーファイル(3Dグラフィクス用)
#ifdef dDOUBLE
#define dsDrawSphere dsDrawSphereD // å˜ç²¾åº¦ã¨å€ç²¾åº¦ã®æç”»é–¢æ•°ã«å¯¾å¿œã™ã‚‹ãŠã¾ã˜ãªã„
#endif
static dWorldID world;  // 動力å¦è¨ˆç®—用ワールド
dBodyID ball;       // 玉
const dReal radius = 0.2, mass = 1.0; // 玉ã®åŠå¾„(m)ã€çމã®é‡ã•(kg)
// シミュレーションループ 毎回呼ã³å‡ºã•れ実行ã•れã¾ã™ã€‚
// 動力å¦è¨ˆç®—ã¯ã‚¹ãƒ†ãƒƒãƒ—サイズをã“ã“ã§æŒ‡å®šã™ã‚Œã°è‡ªå‹•çš„ã«è¨ˆç®—ã•れる
// ãŸã ã—ã€æç”»ã¯ã“ã“ã§æ›¸ã‹ãªã„ã¨ä½•も表示ã•れã¾ã›ã‚“。
static void simLoop (int pause)
{
const dReal *pos,*R; // ä½ç½®ã€å›žè»¢è¡Œåˆ—
dWorldStep(world,0.05);  // シミュレーションã®ï¼‘ステップ進ã‚る。ãã®æ™‚é–“ã‚’0.05ç§’ã«è¨å®šã€‚  
dsSetColor(1.0,0.0,0.0); // 色ã®è¨å®šã€‚引数ã¯å…‰ã®ï¼“原色(赤ã€ç·‘ã€é’)。値ã¯ï¼ã‹ã‚‰ï¼‘.
pos = dBodyGetPosition(ball);  // 玉ã®ä½ç½®ã‚’å–å¾—
R = dBodyGetRotation(ball);   // 玉ã®å§¿å‹¢ã‚’å–å¾—
dsDrawSphere(pos,R,radius);   //赤玉をæç”»
}
// ドãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•ã®å‰å‡¦ç†é–¢æ•°
void start()
{
// カメラã®è¨å®š
static float xyz[3] = {0.0,-3.0,1.0}; // 視点ã®ä½ç½® (x, y, z [m])
static float hpr[3] = {90.0,0.0,0.0}; // è¦–ç·šã®æ–¹å‘(ヘッドã€ãƒ”ッãƒã€ãƒãƒ¼ãƒ«[°])
dsSetViewpoint (xyz,hpr);        // 視点ã®è¨å®š
}
// メイン関数 ã“ã“ã‹ã‚‰èªã‚“ã§ãã ã•ã„。
int main (int argc, char **argv)
{
dReal x0 = 0.0, y0 = 0.0, z0 = 1.0; // ボールã®åˆæœŸä½ç½®[m]
dMass m1; // 質é‡ãƒ‘ãƒ©ãƒ¡ãƒ¼ã‚¿æ§‹é€ ä½“ï¼ˆè³ªé‡ã€æ…£æ€§ãƒ¢ãƒ¼ãƒ¡ãƒ³ãƒˆãªã©ï¼‰
// æç”»API(ドãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•)ã®ãŠã¾ã˜ãªã„(è¨å®šï¼‰
dsFunctions fn;     // ドãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•æ§‹é€ ä½“
fn.version = DS_VERSION;  // ドãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³
fn.start = &start;  //  シミュレーションã®å‰å‡¦ç†é–¢æ•°
fn.step = &simLoop;  // シミュレーションã®å„ステップã§å‘¼ã°ã‚Œã‚‹é–¢æ•°
fn.command = NULL; // 関数ãŒãªã„ã®ã§NULLãƒã‚¤ãƒ³ã‚¿ã‚’指定
fn.stop    = NULL;  // 関数ãŒãªã„ã®ã§NULLãƒã‚¤ãƒ³ã‚¿ã‚’指定
fn.path_to_textures = "../../drawstuff/textures"; // テクスãƒãƒ£ã¸ã®ãƒ‘ス
// 動力å¦è¨ˆç®—用世界ã®å‰µé€
dInitODE(); // ODEã®åˆæœŸåŒ–
world = dWorldCreate();  // 動力å¦è¨ˆç®—ã®å¯¾è±¡ã¨ãªã‚‹å‰›ä½“を入れるworldを作る。戻り値ã¯ãã®ID番å·ã€‚
dWorldSetGravity(world,0,0,-0.001); // é‡åŠ›åŠ é€Ÿåº¦ï¼ˆx, y, z)ã®è¨å®šã€€ã€€-0.001 m/s^2
// 玉を作る
ball = dBodyCreate(world); // 剛体を作る。戻り値ã¯ãã®ID番å·
dMassSetZero(&m1);    // 質é‡ãƒ‘ラメータm1ã®åˆæœŸåŒ–
dMassSetSphereTotal(&m1,mass,radius); // 質é‡ãƒ‘ラメータm1ã«å‰›ä½“ã®è³ªé‡ã‚’è¨å®š
dBodySetMass(ball,&m1);   // 剛体ã«è³ªé‡ãƒ‘ラメータm1ã‚’è¨å®š
dBodySetPosition(ball, x0, y0, z0);  // 剛体ballã®çµ¶å¯¾åº§æ¨™ã§ã®ä½ç½®(x, y, z)ã‚’è¨å®š
// シミュレーション本体
// argc, argvã¯main関数ã®å¼•æ•°ã€ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã‚µã‚¤ã‚º352 x 288ピクセル, fnã¯ãƒ‰ãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•æ§‹é€
dsSimulationLoop (argc,argv,352,288,&fn);
// 世界ã®ç ´å£Š
dWorldDestroy (world);  // 動力å¦è¨ˆç®—ã®å¯¾è±¡ã§ã‚ã‚‹worldã‚’ç ´å£Šã™ã‚‹  
dCloseODE(); // ODEã®çµ‚了
return 0;
}
ã“れã¯èµ¤çމã®è‡ªç”±è½ä¸‹ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã™ã€‚ODEã®ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®æµã‚Œã§ã¯ã€ã¾ãšã€dInitODE()ã§ODEã‚’åˆæœŸåŒ–ã—ã¾ã™ã€‚次ã«ã€ç‰©ç†è¨ˆç®—ã‚’ã™ã‚‹world(ワールド)をdWorldCreate()ã§ä½œã‚Šã¾ã™ã€‚物ç†è¨ˆç®—ã‚’å—ã‘る物体ã¯ãã®ä¸ã«ä½œã‚‰ãªã‘れã°ãªã‚Šã¾ã›ã‚“。ODEã§ã¯ç‰©ä½“ã®ã“ã¨ã‚’body(ボディ)ã¨å‘¼ã‚“ã§ã„ã¾ã™ã€‚物体ã¯dBodyCreate(world)ã§ä½œã‚Šã¾ã™ã€‚物体を作ã£ãŸã‚‰ã€æ¬¡ã«ãã®è³ªé‡ãƒ‘ラメータã¨ä½ç½®ã‚„姿勢をè¨å®šã—ã¾ã™ã€‚ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã¯çƒã®è³ªé‡ãƒ‘ラメータã¨ä½ç½®ã ã‘ã‚’è¨å®šã—ã¦ã„ã¾ã™ã€‚
物体ã®ç”Ÿæˆã¨è¨å®šãŒçµ‚ã‚ã£ãŸã‚‰ã€æ¬¡ã¯ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’進ã‚ã¾ã™ã€‚ã“れã¯dsSimulationLoop()ã§ç¹°ã‚Šæ›¿ãˆã—simLoop関数ãŒå‘¼ã³å‡ºã™ã“ã¨ã«ã‚ˆã‚Šå®Ÿè¡Œã•れã¦ã„ã¾ã™ã€‚simLoop関数ã®dWorldStep(world, 0.05)ã¯ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’1ステップ進ã‚ã¦ã„ã¾ã™ã€‚進ã‚る時間ã¯ï¼’番目ã®å¼•æ•°ã€ã“ã®å ´åˆã¯0.05ç§’ã¨ãªã‚Šã¾ã™ã€‚dsDrawSphere()ã§è½ä¸‹ã™ã‚‹çƒã‚’表示ã—ã¦ã„ã¾ã™ã€‚
シミュレーションãŒçµ‚ã‚ã‚‹ã¨ï¼Œå¾Œç‰‡ä»˜ã‘を行ã„ã¾ã™ã€‚dWorldDestroy(world)ã§ãƒ¯ãƒ¼ãƒ«ãƒ‰ã‚’ç ´å£Šã—,dCloseODE()ã§ODEã®çµ‚了処ç†ã‚’ã—ã¾ã™ã€‚
ãªãŠã€å°æ–‡å—ã®dã§å§‹ã¾ã‚‹é–¢æ•°ã¯ODEã®API(application interface)ã§ã€dsã§å§‹ã¾ã‚‹é–¢æ•°ã¯drawstuff(ドãƒãƒ¼ã‚¹ã‚¿ãƒƒãƒ•)ã®APIã§ã™ã€‚drawstuffã¯ODE付属テストプãƒã‚°ãƒ©ãƒ 表示用ã®ãƒ©ã‚¤ãƒ–ラリã®ã“ã¨ã§ã™ã€‚
ç™»å ´ã—ãŸAPIã®è©³ç´°ã«ã¤ã„ã¦ã®èª¬æ˜Žã¯ã“ã“をクリックã—ã¦ãã ã•ã„.
説明ã¯ã“ã®ãらã„ã«ã—ã¦ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ 3をダウンãƒãƒ¼ãƒ‰ã€ãƒ“ルドã—ã¦å®Ÿè¡Œã—ã¦ã¿ã¾ã—ょã†ï¼Visual C++ 2008ã¨Code::Blocks 8.02用ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ァイルãŒåŒå°ã•れã¦ã„ã¾ã™ã€‚
ã“ã“ã§ã¯é‡åŠ›åŠ é€Ÿåº¦ã‚’èµ¤çŽ‰ãŒã‚†ã£ãりè½ä¸‹ã—ã¦ã„ãã¾ã™ãŒã€ãªã‚“ã¨åœ°é¢ã‚’通り抜ã‘ã¦æ¶ˆãˆã¦ã—ã¾ã„ã¾ã™ã€‚実ã¯ä¸Šã®ãƒ—ãƒã‚°ãƒ©ãƒ ã«ã¯è¡çªæ¤œå‡ºæ©Ÿèƒ½ãŒçµ„ã¿è¾¼ã¾ã‚Œã¦ã„ãªã‹ã£ãŸã®ã§ã™ã€‚
次回ã¯ODE付属ã®3Dグラフィクスライブラリdrawstuffã«ã¤ã„ã¦å¦ã³ã¾ã—ょã†ã€‚
ã“ã‚“ã«ã¡ã¯ã€‚ã“ã®å¤ã‹ã‚‰ODEã‚’å§‹ã‚ãŸè€…ã§ã™ã€‚
ã‹ãªã‚Šä¸é€”åŠç«¯ãªè³ªå•ã«ãªã£ã¦ã—ã¾ã„ã¾ã™ãŒã€ãƒœãƒ¼ãƒ«ã®è½ä¸‹ã®ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ç”»é¢å†…ã®ãƒœãƒ¼ãƒ«ã‚’増やã™ã“ã¨ã£ã¦ã§ãã‚‹ã‚“ã§ã™ãŒï¼Ÿ
starã•ã‚“ã€
ã¯ã˜ã‚ã¾ã—ã¦ã€
ã§ãã¾ã™ã‚ˆã€‚
上ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã§ã™ã¨ã€ãƒœãƒ¼ãƒ«ã®ç”Ÿæˆéƒ¨åˆ†ã§ã‚る56~6ï¼è¡Œç›®ã‚’ãƒœãƒ¼ãƒ«ã®æ•°ã ã‘è¿½åŠ ã—ã€è¡¨ç¤ºéƒ¨åˆ†ã®ï¼’ï¼‘ï½žï¼’ï¼“è¡Œç›®ã‚’ãƒœãƒ¼ãƒ«ã®æ•°ã ã‘è¿½åŠ ã™ã‚‹ã¨OKã§ã™ã€‚åŒã˜å½¢çжã®å ´åˆã¯ã€dBodyID ball[100];ãªã©ã¨é…列ã§å®£è¨€ã™ã‚‹ã¨ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’çŸãã§ãã¾ã™ã€‚
ãªãŠã€ãƒœãƒ¼ãƒ«ã§ã¯ã‚りã¾ã›ã‚“ãŒã€ãƒ‰ãƒŸãƒŽå€’ã—ã®ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ ãŒä»¥ä¸‹ã«ã‚りã¾ã™ã€‚ãŸã ã—ã€ODEをより簡å˜ã«ã™ã‚‹ãŸã‚ã«ã€è‡ªå‰ã®é–¢æ•°ã‚’多用ã—ã¦ã„ã¾ã™ã€‚良ã‚ã—ã‘れã°ã€ODEã§å¦ã¶C言語2ã®è¨˜äº‹ã‚‚ã”覧ãã ã•ã„。
http://demura.net/9ode/7524.html
ã§ã‚€
starã•ん,
ã“ã®æ‰‹ã®ã”質å•ãŒå¤šã‹ã£ãŸã®ã§ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ を作りã¾ã—ãŸï¼Žä»¥ä¸‹ã®ç·´ç¿’ã«ã‚ã‚‹sample6multi-100817.zipをダウンãƒãƒ¼ãƒ‰ã—ã¦ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’ã”å‚考ã«ã—ã¦ãã ã•ã„.
ODEåˆç´šè¬›åº§ã€€ï¼–.è¡çªæ¤œå‡ºã€€http://demura.net/tutorials/ode6
ã§ã‚€
返信ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
試ã—ã«ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’変更ã—ã¦ã¿ãŸã®ã§ã™ãŒã†ã¾ãã„ãã¾ã›ã‚“。ã“れã£ã¦å…¨ãåŒã˜åº§æ¨™ã«ãƒœãƒ¼ãƒ«ãŒé‡ãªã£ã¦ã‚‹çŠ¶æ…‹ã ã¨æ€ã†ã®ã§ã™ãŒã€åº§æ¨™ã‚’ãšã‚‰ã™æ–¹æ³•ãŒè‰¯ã分ã‹ã‚Šã¾ã›ã‚“。
自分ã¨ã—ã¦ã¯é›¢ã‚ŒãŸä½ç½®ã«ãƒœãƒ¼ãƒ«ã‚’二ã¤è¡¨ç¤ºã—ãŸã„ã®ã§ã™ãŒåˆæœŸä½ç½®ã®åº§æ¨™ãƒ‡ãƒ¼ã‚¿ã‚’二ã¤ã«ã—ã¦ã‚‚ã†ã¾ãã„ã‹ãªã„ã—ã©ã†ã„ã†ã“ã¨ã§ã—ょã†ã‹ï¼Ÿ
starã•ã‚“
sample6multi-100817.zipを実行ã—ã€ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’èªã¾ã‚Œã¾ã—ãŸã‹ï¼Ÿ
ã§ã‚€
ã§ã‚€ã•ã‚“
ãŠä¸–話ã«ãªã‚Šã¾ã—ãŸï¼Žã†ã¾ãhello.cbpãŒå‹•ãã¾ã—ãŸï¼Ž
ã“れã‹ã‚‰ã¯ã§ã‚€ã•んページ+自力ã§å‹‰å¼·ã—ã¾ã™ï¼Ž
ã©ã†ã‚‚ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸï¼Ž
ã¨ã¦ã‚‚分ã‹ã‚Šã‚„ã™ã„サイトをã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Ž
ODEã‚’åˆã‚ã¦ä½¿ã£ã¦ã¿ã‚ˆã†ã¨å‹‰å¼·ã•ã›ã¦ã„ãŸã ã„ã¦ãŠã‚Šã¾ã™ï¼Ž
ã•ã¦ï¼Œã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ (sample3.cbp)ãªã©ã‚’é–‹ã“ã†ã¨ã™ã‚‹ã¨
mingw32-g++.exe – ディスクãŒã‚りã¾ã›ã‚“
ドライブã«ãƒ‡ã‚£ã‚¹ã‚¯ãŒã‚りã¾ã›ã‚“.ディスクをドライブ D:ã«æŒ¿å…¥ã—ã¦ãã ã•ã„.
ã¨ã„ã†ã‚¨ãƒ©ãƒ¼ãŒå‡ºã¦ï¼Œæ“作ä¸èƒ½ã«ãªã‚‹ã®ã§ã™ãŒï¼Œãã®ã‚ˆã†ãªäº‹ä¾‹ã”å˜çŸ¥ã§ã—ょã†ã‹ï¼Ž
アドãƒã‚¤ã‚¹ã„ãŸã ã‘ãŸã‚‰å¹¸ã„ã§ã™ï¼Ž
よã‚ã—ããŠé¡˜ã„ã„ãŸã—ã¾ã™ï¼Ž
nekoã•ん,
コメントã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Žåˆ†ã‹ã‚Šã‚„ã™ã„サイトã¨ã„ã£ã¦é ‚ã‘ã¦ã¨ã¦ã‚‚ã†ã‚Œã—ã„ã§ã™ï¼Ž
ã•ã¦ï¼Œä»¥ä¸‹ã®ãƒ•ァイルã¯ã‚りã¾ã™ã‹ï¼Ÿ
c:\Program Files\CodeBlocks\MinGW
ãªã„å ´åˆã¯ï¼ŒMinGW付ãã®CodeBlocksをダウンãƒãƒ¼ãƒ‰ã—ã¦ãã ã•ã„.
ã§ã‚€
ã§ã‚€ã•ã‚“
早速ã«ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Ž
ã”æŒ‡æ‘˜ã®MinGWã¯ã‚りã¾ã™ï¼Ž
今日ã¯ï¼Œcdpファイルã¯ãƒ€ãƒ–ルクリックã—ã¦ã‚‚codeblocksã¯èµ·å‹•ã•れるもã®ã®ï¼Œãƒ—ãƒã‚°ãƒ©ãƒ ã¯ä½•も表示ã•れãªã„状態ã§ã™ï¼Ž
cppファイルã¯ãƒ—ãƒã‚°ãƒ©ãƒ ãŒè¡¨ç¤ºã•れã¾ã™ãŒï¼Œãƒ“ルドã™ã‚‹ã¨ã‚¨ãƒ©ãƒ¼å¤šæ•°ã§ï¼Œode/ode.hã¨drawstuff/drawstuff.hãŒNo Such Fileã«ãªã£ã¦ã„ã¾ã™ï¼Ž
ã§ã‚€ã•ã‚“ã‚‚codeblocksã®verã¯8.02ã§ã™ã‹ï¼Ž
ビルドFeb 27 2008ã¨ãªã£ã¦ã„ã¾ã™ï¼Ž
èµ·å‹•ãŒã†ã¾ãã„ã‘ã°ï¼Œæ¥½ã—ãéŠã¹ãã†ãªã®ã§ã™ãŒï¼ŒãŠæ‰‹æ•°ã‚’ãŠã‹ã‘ã—ã¾ã™ãŒï¼Œã©ã†ãžã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ï¼Ž
ã†ã¾ãã„ãã¾ã—ãŸã®ã§ï¼Œã“れã¯ç„¡ã—ã§å¤§ä¸ˆå¤«ã§ã™ï¼Ž
後å¦ã®ãŸã‚ã«ã†ã¾ãã„ã‹ãªã‹ã£ãŸåŽŸå› ã‚’æ•™ãˆã¦é ‚ã‘ã¾ã™ã‹ï¼Ÿ
ã§ã‚€
ãŠã‚ã§ã¨ã†ã”ã–ã„ã¾ã™ï¼Ž
ã¾ãŸï¼Œã‚³ãƒ¡ãƒ³ãƒˆãã ã•ã„ã.
ã§ã‚€