ゲームのアルゴリズムを教えて管sai (199レス)
上下前次1-新
123: 名前は開発中のものです。 [sage] 2008/06/15(日) 23:46:14 ID:L9WqTsHd(1/2) AAS
 アークタンジェントを理解すればいいとおもうよ 
124: 名前は開発中のものです。 [sage] 2008/06/15(日) 23:47:36 ID:L9WqTsHd(2/2) AAS
 外部リンク[htm]:www.tkb-soft.hmcbest.com 
 具体的にはこのへんで。 
125(2): 119 [sage] 2008/06/16(月) 00:19:31 ID:VJeuSd2d(1/2) AAS
 う〜ん、ちょっと違って 
 人工知能で解決できるのではないかと思うのですが、 
 人工知能に関する知識がないので、作れないのですが、 
 オススメの入門書などないでしょうか? 
126: 名前は開発中のものです。 [sage] 2008/06/16(月) 00:31:02 ID:4SfMqdzY(1) AAS
 >>125 
 現在位置ベクトル 
 現在速度ベクトル 
 目標位置ベクトル 
 目標位置での速度ベクトル 
 この条件を満たす加速度ベクトルの時系列を求めればいいんだよね。 
 でもゲームだから時系列を事前に求める必要はなくて 
 毎フレームごとに計算するから状態マシンでいけるよ。 
 2Dシューティングなら普通そうだと思う。 
  
 本格的にやるなら確率過程勉強するとおもしろいよ。 
 実際の迎撃ミサイルがどのように制御されてるか理解できる。 
127: 名前は開発中のものです。 [sage] 2008/06/16(月) 00:51:35 ID:Mj4LPxSD(1) AAS
 敵の動きが実際にはどういうふうに実装されてるのかを知りたいなら、 
 >>120みたいな作り方の本が一番実践的だと思うけどなぁ。敵の動きのサンプルもあるだろうし。 
 STGは本格的に作ったことはないが、普通敵の動きに人工知能なんて使わないんじゃない? 
 俺だったら毎フレーム状態遷移を計算して、行動を決定するような実装にすると思う。 
  
 リアル迎撃ミサイルの精度で敵が弾を撃ってくるSTGとか、やってみたいがストレスがたまりそうだなw 
128: 名前は開発中のものです。 [sage] 2008/06/16(月) 01:04:13 ID:VJeuSd2d(2/2) AAS
 Cマガが廃刊になって以来、こういった系統の本で当たりだった試しがない 
 浅く、レベルも低く、よくこんな本だせたな という本だらけ 
 立ち読みできないから なおさらタチが悪い 
  
 まぁ、状態遷移図で検討します 
129: 名前は開発中のものです。 [sage] 2008/06/16(月) 01:41:50 ID:BvIxc5ty(1) AAS
 >>125 
 この手のアルゴリズムは、たぶん正解みたいなものはなくて、 
 プログラマーのセンスによるんだと思う。 
 ゲームプログラマーが技術力だけじゃなく、センスを活かせる局面なので、 
 いろいろ試して自分なりのノウハウを蓄積するのがいいと思う。 
  
 ちなみに、この手の処理は、パラメータによる差別化だけじゃなくて、 
 ちゃんとそれぞれの動きに対して別のコードを書いたほうがいいよ。 
130(2): 名前は開発中のものです。 [sage] 2008/06/23(月) 18:42:29 ID:gkCzmYeJ(1/2) AAS
 シューティングゲームを作っています。 
 2次元配列に初期化された敵のデータがあります。 
 int EnemyMap[25][300]= 
 {  
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0}, 
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0}, 
 {0,0,0,0,0, 0,1,0,1,0, 0,0,0,・・・ 
 }} 
 0が無しで、0以上が敵在りで、敵の番号です。 
 このような場合の敵の出現方法を教えて下さい。 
 ちなみに縦スクロールSTGです。お願いします。 
131: 130 [sage] 2008/06/23(月) 19:48:54 ID:gkCzmYeJ(2/2) AAS
 0が無しで、0より上が敵在りで、敵の番号です 
 の間違いでした。 
132: 名前は開発中のものです。 [sage] 2008/06/23(月) 20:25:54 ID:leAIdu27(1) AAS
 テキトーに推測しながら…… 
  
 時間経過をターンとする、 
 25マス(?)のデータが300ターンぶんあるのを表すのなら 
 int EnemyMap[300][25] 
 ではないか 
  
 gameturn を例えば10フレームごとに +1 し、 
  
 { 
 int i; 
 for(i=0;i<25;i++) 
 { 
 int enemyidx; 
 enemyidx = EnemyMap[gameturn][i]; 
 if(enemyidx != 0) {addenemy(enemyidx, i);} 
 } 
 } 
133(1): 名前は開発中のものです。 [sage] 2008/06/23(月) 20:30:20 ID:cIfICiuE(1/3) AAS
 >>130 
  
 int COLUMN = 25; 
 int ROW = 300; 
 int EnemyMap[COLUMN][ROW] = { {0,0,..... 
 int rowNOW = 0; 
  
 while(1) 
 { 
   /* 画面描画とか、敵機、自機の移動とか*/ 
  
   //ここから敵の配置 
   for ( int x = 0; x < COLUMN; x++ ) { 
     敵を出現させる関数( EnemyMap[x][rowNow], x, 0 ); 
   } 
  
   rowNOW++; 
 } 
  
 void 敵を出現させる関数( int enemyType, int x, int y ) 
 { 
   switch ( enemyType ) { 
     case 1: { 敵1登場(x,y); break; } 
     case 2: { 敵2登場(x,y); break; } 
     case 3: { 敵3登場(x,y); break; } 
     case 4: { 敵4登場(x,y); break; } 
     case 5: { 敵5登場(x,y); break; } 
     ... 
   } 
 } 
  
 うーん、我ながらほれぼれするなあ。 
134: 名前は開発中のものです。 [sage] 2008/06/23(月) 20:34:44 ID:cIfICiuE(2/3) AAS
 >>133に 
  
     case 0: { break; /* 敵は登場しない */ } 
  
 を追加(汗)
135: 名前は開発中のものです。 [sage] 2008/06/23(月) 21:56:44 ID:SqRC+pBQ(1) AAS
 そのデータ構造の欠点は 
   ・敵がいてもいなくても同じだけの容量が必要 
   ・同じ時間に敵は1機しか出現できない 
  
 あ、ひょっとして勘違いでこの25っていうのは画面の幅のことなのか!? 
 25x300のマップを表現してるとか 
136: 名前は開発中のものです。 [sage] 2008/06/23(月) 23:17:25 ID:cIfICiuE(3/3) AAS
 25って画面の幅だと信じてました。 
137: 名前は開発中のものです。 [sage] 2008/06/24(火) 03:55:28 ID:KKsizlIf(1) AAS
 敵が画面横や画面中央から出現するような処理はできないな。 
138: 名前は開発中のものです。 [sage] 2008/06/24(火) 09:03:16 ID:dfjKfTQO(1) AAS
 for(i=0;i<25;i++) 
 {  
     if( ScrollY == (ScrollY / 32) * 32 ) 
     { 
       Enemy_temp = StageMap2[i + ( ScrollY / 32 ) * 25 ]; 
       if( Enemy_temp > 0) 
       { 
         ShowEnemy( i * 32 , -32 , Enemy_temp , 3 ); 
       } 
     } 
 } 
 でいいんでないの? 
139(1): 名前は開発中のものです。 [sage] 2008/06/24(火) 09:57:42 ID:r5s8lMOb(1) AAS
 俺だったらテキストデータで 
 E:idx:xpos:ypos:flag 
 みたいなのを一行づつ読むのを作る、というか実際そうした。 
 E:1:32:-16 
 E:1:32:-24 
 W:30 
 E:2:64:-16 
 だったら種類1の敵をx=32 y = -16 と y = -24 に出現さして、30フレーム待って、x=64に敵出現 
 ゼビウスみたいに背景と連動するにはまた違ったやり方がいいだろうけど 
140: 名前は開発中のものです。 [sage] 2008/06/25(水) 01:36:50 ID:kmQquf20(1) AAS
 俺も絶対的な配置より、>>139みたいな相対的な配置のほうが好きだな。 
 後々編隊の出現時刻を変えるときとか、相対時間を調整するだけですむ。 
 enemy命令、wait命令とか。 
 作り方はシューティングゲームプログラミングって本に載ってる。 
 あまりきれいなコードじゃないから余裕があるなら自分で組みなおした方がいいと思うが。
141(3): 名前は開発中のものです。 [sage] 2008/07/06(日) 07:44:15 ID:wmyMOr1K(1) AAS
 外部リンク[html]:www.borndigital.co.jp 
  
 GPGを購入しようと思ってるのですが 1〜5まであって 
 最新の5を購入しようと思っています 無理して1〜4まで全部買う必要はありませんか? 
142: sai [] 2008/11/02(日) 12:31:11 ID:nTsQz3KG(1) AAS
 Xi[sai]DXの自動解答ツールでも作ってくれ。 
 総当り的に解答できるものなのか・・・ 
143: 名前は開発中のものです。 [] 2008/11/02(日) 18:03:02 ID:4nEQs4Qs(1) AAS
 >>141 
 バカカシネヨってぐらい高いよなこのシリーズ 
144: 名前は開発中のものです。 [sage] 2008/11/03(月) 01:37:29 ID:NKIveKH+(1) AAS
 >>141 
 GPGは最新刊から買う物だよ。 
145: 名前は開発中のものです。 [sage] 2008/11/17(月) 23:19:42 ID:e6FlExMV(1) AAS
 >>141 
 1,2以外はmmo用だよ 
146: 名前は開発中のものです。 [sage] 2008/11/21(金) 02:41:33 ID:EpPTVUTk(1) AAS
 初期のGPGのほうがおもしろかったよな 
147(1): 名前は開発中のものです。 [] 2009/02/13(金) 16:28:05 ID:4Bf2H9la(1) AAS
 まんまスペースハリアーみたいな疑似3Dシューティングゲームを作ってみようと思うのですが 
 あの手のゲームは絵や映像の技法で言うところの「一点透視法」な画面だと思うのですが 
 その考えで行くと自キャラが撃つ弾は全て画面中央の一点に向かってしまう事になってしまいます(リアルに考えるとそれで正しい) 
 スペハリや亜流はその辺をどうやってそれっぽくフェイクしているのでしょうか? 
上下前次1-新書関写板覧索設栞歴
あと 52 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.021s