ゲームのアルゴリズムを教えて管sai (199レス)
上下前次1-新
107(1): 106 [] 2008/05/19(月) 13:08:26 ID:rhmqn4vd(1) AAS
 ↑この質問取り下げます。失礼しました。
108: 名前は開発中のものです。 [sage] 2008/05/19(月) 14:26:06 ID:jyR28ttC(1) AAS
 >>107 
 移動するなら移動先を書いてくれ。 
  
 実は調べたり考えたりしてたんだが最小公倍数の矩形で 
 バックトラックするという馬鹿な方法しか思いつかなかったんだ。 
109: 名前は開発中のものです。 [sage] 2008/05/30(金) 14:21:38 ID:Vu7kcDak(1/3) AAS
 >>9696(3): 名前は開発中のものです。 [sage] 2008/03/12(水) 21:02:38 ID:K0/YrLVn(1) AAS
 今、C言語でシューティングゲーム作ってるんですが、 
 連続した弾の出し方が分かりません。教えてください。 
 専門学校の先生には、配列を使えと言われたのですが、 
 よく分かりません。 
  
 今、作成している途中のソースコードを書きます。 
  
 void Shot(void) 
 { 
   for(i=0;i<100;i++) 
   { 
     if(Bullet[i].flag == 0 && Bullet[i].type == 0) 
     { 
       Bullet[i].flag = 1 ; 
       Bullet[i].x = (Jiki.x+Jiki.x+Jiki.width) / 2 ; 
       Bullet[i].y = Jiki.y ; 
     } 
   } 
 } 
  
 void KeyCheck(void) 
 { 
   if(GetAsyncKeyState(VK_SPACE)<0){ Shot(); } 
 }  
100個程度ならいいですけど配列でもいいかもしれないけど 
 双方向リストとかを使うようにしたほうがいいかも。c言語だし。 
 まあこの辺は後ほど。 
 でも配列を使えとかいう講師に双方向リストを実装して提出したら 
 うらまれそうw 
  
 unsigned int KeyShotFrmCnt = 0;  //ショットキーのウェイト用カウンター 
 ↑これはソースの頭のほうに書いてね。 
  
 void KeyCheck(void) 
 { 
 ??if (KeyShotFrmCnt == 0) 
 ??{ 
 ???if(GetAsyncKeyState(VK_SPACE)<0) 
 ???{ 
 ????Shot(); 
 ????(KeyShotFrmCnt = 10; 
 ???} 
 ??} else { 
 ???--KeyShotFrmCnt;  
 ??} 
 } 
110: 名前は開発中のものです。 [sage] 2008/05/30(金) 14:23:33 ID:Vu7kcDak(2/3) AAS
 うは、コピーしたらなんか辺になったorz 
 void KeyCheck(void) 
 { 
    if (KeyShotFrmCnt == 0) 
    { 
       if(GetAsyncKeyState(VK_SPACE)<0) 
       { 
          Shot(); 
          KeyShotFrmCnt = 10; 
       } 
    } else { 
       --KeyShotFrmCnt; 
    } 
 } 
111: 名前は開発中のものです。 [sage] 2008/05/30(金) 14:28:56 ID:Vu7kcDak(3/3) AAS
 2chってスペース空けるの面倒だなw 
  
 AAエディタとかで整形してるのか? 
112: 名前は開発中のものです。 [sage] 2008/05/30(金) 14:48:17 ID:tqfQ+S3S(1) AAS
 つーか3月の質問にいまさら・・・
113(1): 名前は開発中のものです。 [sage] 2008/06/10(火) 21:19:46 ID:8sGd3hVL(1/2) AAS
 ↓ポーカーで、誰が有利かを調べるプログラム作りたいんたけど 
 外部リンク[swf]:www.pokernews.com 
  
 いったいこれ、なにをどうやってこんなに高速に確率計算できるのか、まったくわからない 
 このプログラムは、近似値じゃなくて↓みたいなドローイングデッドもきっちり表示するし 
 画像リンク
 
 
  
 あらかじめ計算した結果をデータベースにでも叩き込んだのかと思ってるんだけど 
 それにしたって膨大すぎる 
114: 名前は開発中のものです。 [] 2008/06/10(火) 21:32:41 ID:8sGd3hVL(2/2) AAS
 単純に全探索じゃなくて、なんか省略する方法があるんだろうが 
115(1): 名前は開発中のものです。 [] 2008/06/12(木) 13:22:11 ID:trmQ6Ydr(1) AAS
 誰かクイックソートが挿入法よりなぜ早いのか教えてくれ 
  
 クイックソートのほうがめんどくさそうなのに最速とか理解できん・・・ 
116: 名前は開発中のものです。 [sage] 2008/06/12(木) 15:21:52 ID:gQmHVY6Z(1) AAS
 >>113 
 そのswfをローカルに落として実行してみたら 
  
 Odds calculator failed to get data from server. 
  
 ってエラーメッセージが出たから、 
 確立計算専用の外部プログラムを呼び出してるっぽい。 
117: 名前は開発中のものです。 [sage] 2008/06/12(木) 15:58:03 ID:gZtmjAve(1) AAS
 >>115 
 全部のソートにN*Nの時間がかかるとする。 
 これを、半分に分けてソートして、足し合わせるとすれば、かかる時間は 
 (N/2)*(N/2) + (N/2)*(N/2) 
 = N*N/4 + N*N/4 
 = N*N/2 
  
 N*N > N*N/2 
  
 ・・・とおもったらクイックソートって2分割って訳じゃないのね?て事で、 
 分割を、(1/x),(1/y)とする。ただし(1/x)+(1/y) = 1 
 1 = 1*1 = (x+y)/xy = (xx + 2xy + yy)/xxyy 
 分割したものをソートして、足し合わせる時間は 
 (N/x)*(N/x) + (N/y)(N/y) 
 = N*N/x*x + N*N/y*y 
 = (yyNN + xxNN) / xxyy 
 = NN(xx + yy)/xxyy 
 (xx + yy)/xxyy = (xx + 2xy +yy)/xxyy - 2xy/xxyy = 1 - 2xy/xxyy 
 ゆえに、NN > NN(xx + yy)/xxyy 
  
 こんなんでどうだろうか。というか、この証明あってるんだろうか。 
118: 名前は開発中のものです。 [sage] 2008/06/12(木) 16:38:08 ID:VjP0i/a5(1) AAS
 データ数によるんだよね。 少ないデータならどれでも変わらん 
119(3): 名前は開発中のものです。 [] 2008/06/15(日) 19:58:45 ID:f+c3BIE0(1/2) AAS
 シューティングゲーム作っているのですが、 
 私の数学力のなさか、敵の動きが、直線と円を描くものしか作れません 
  
 どうやったら、アーケードにあるような あたかも敵が思考を持っているような動きが 
 実現できるのでしょうか? 
120(1): 名前は開発中のものです。 [sage] 2008/06/15(日) 21:16:54 ID:n3ZqdSRd(1) AAS
 >>119 
 敵の動きのカタログ的なものが欲しいなら……。 
  
 シューティングゲーム プログラミング ¥ 2,940 (税込) 
 松浦 健一郎 (著), 司 ゆき (著)  
 外部リンク:www.amazon.co.jp 
121: 119 [sage] 2008/06/15(日) 23:38:35 ID:f+c3BIE0(2/2) AAS
 そうではなく、どのようにして さまざまな動きを実現しているのか? その方法を知りたいわけです。 
  
 私の敵を動かす情報は 初速度、速度、角度、時間、加速度で管理しているので、直線と円のみになってしまうのです。 
  
 そこで、微妙に、プレイヤーのいる方向に向かってきたりする方法は、どのような情報で管理しているのかを 
 知りたいのです。 
  
 私の方法でも角度を細かく設定すれば、ある程度 色々な動きは実現できるのですが、 
 もっとスマートな方法はないかと思い質問したまでです。 
122: 名前は開発中のものです。 [sage] 2008/06/15(日) 23:40:21 ID:re3KC7mv(1) AAS
 二つの点座標が解れば、角度が求まるのでは? 
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より上が敵在りで、敵の番号です 
 の間違いでした。 
上下前次1-新書関写板覧索設栞歴
あと 68 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.009s