ゲームのアルゴリズムを教えて管sai (199レス)
上下前次1-新
45: あぼーん [あぼーん]  AAS
あぼーん
46: あぼーん [あぼーん]  AAS
あぼーん
47: 名前は開発中のものです。 [sage] 03/06/06 12:30 ID:PTApivoG(1) AAS
 現在、荒らしによってこの板の利用が困難になっているため、避難所を作成しています。 
 出来ればこちらに移動するのをお勧めします。 
  
 ゲ製作技術板(避難所) 
 外部リンク:bbs.gamdev.org 
  
 -------------専用ブラウザ(OpenJane)への登録方法------------- 
 板一覧ウィンドウのカテゴリのフォルダを右クリック→ここに板を追加
48: あぼーん [あぼーん]  AAS
あぼーん
49: あぼーん [あぼーん]  AAS
あぼーん
50: あぼーん [あぼーん]  AAS
あぼーん
51: あぼーん [あぼーん]  AAS
あぼーん
52: あぼーん [あぼーん]  AAS
あぼーん
53: あぼーん [あぼーん]  AAS
あぼーん
54: 名前は開発中のものです。 [] 03/06/13 21:22 ID:NCwo/Gzi(1) AAS
 みてね〜♪ 
 外部リンク[html]:www1.free-city.net 
55: 山崎 渉 [(^^)] 03/08/15 08:34 ID:KFL+te0G(1) AAS
     (⌒V⌒) 
    │ ^ ^ │<これからも僕を応援して下さいね(^^)。 
   ⊂|    |つ 
    (_)(_)                      山崎パン   
56: 名前は開発中のものです。 [] 04/07/03 19:23 ID:E3a3uuaW(1) AAS
 漏れら極悪非道のage武田騎馬ブラザーズ! 
 ネタもないのにageてやるからな! 
  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
   ∧_ヘ      ∧_ヘ 
   / \〇ノゝ    / \〇ノゝ age  
  /三/´∀`)∩ ∩/´∀`)  age 
  (つ  丿    (   ⊂) age 
   ( ヽノ      ヽ/  )   age 
   し(_)      (_)J 
57: 名前は開発中のものです。 [sage] 2005/05/11(水) 09:55:39 ID:QbGDxSga(1) AAS
 こんなスレッドまで来て、ゲームアルゴリズムを真剣に 
 学びたい人はいないとは、思うけど、 
  
 単純な2Dシューティング(インベーダー程度)なら 
 配列、探索アルゴリズム、リスト、構造体 
 テーブル化、ソートアルゴリズム、フラグ、画像転送、 
 矩形の当たり判定 
  
 アドベンチャーゲームなら 
 自作スクリプトの字句解析、構文解析(lac,lex) 
 簡単な暗号化、圧縮アルゴリズム、バイナリファイル操作 
 画像エフェクト系(拡大縮小回転、ワイプ、ラスタースクロール、 
 α値操作、他いろいろ) 
 が分かれば作れると思います。 
  
 たぶん。 
58: 名前は開発中のものです。 [] 2005/05/23(月) 00:26:42 ID:MvQZceoD(1) AAS
   
59(1): 名前は開発中のものです。 [] 2005/06/14(火) 17:02:51 ID:9FWtswMc(1) AAS
 だれか、2Dアクションゲームの、スクロールとキャラクタ・当たり判定の 
 管理について教えてくださいな。 
60(1): 名前は開発中のものです。 [sage] 2005/06/15(水) 15:58:31 ID:J79aeXl5(1/4) AAS
 >>59 
 昔のゲームを逆アセンブルで解析してみて参考にするのは、どうだろう… 
  
 私は、解析したことがないので、どうなっているのか分かりませんが、 
 少し昔の2Dアクションゲーム(ロックマン、マリオ、魔界村、ソニック、スペランカー、etc) 
 のマップは、おそらく32×32ドット(24×24ドット)程度の大きさで区切られたマスの組み合わせで 
 表現されていると思われます。 
 それを、2次元配列でint Map[300][300]={ {0,0,0,1,0,1,…のように表して 
 0を当たり判定なし、0以外の値(1など)を当たり判定ありとすれば、マップデータは完成。 
  
 ●そのマップデータを画面に表現するには、 
 sx,syをx,y方向別のスクロール管理変数 
 画面の解像度を320×240とすると 
  
 void DrawMap() 
 { 
   int stx=sx/32;int edx=sx+320/32; 
   int sty=sy/32;int edy=sy+240/32; 
   for(int i=stx;i<edx;i++) 
   { 
    for(int j=sty;i<edy;j++) 
    { 
     DrawMapChip(map[i][j],i*32-sx,j*32-sy) 
    } 
   } 
 }
61(1): 名前は開発中のものです。 [sage] 2005/06/15(水) 16:02:04 ID:J79aeXl5(2/4) AAS
 ●スクロールは、常にメインキャラクターを画面の中心に置いておきたい訳だから 
  
 void CalcScroll(int *sx,int *sy) 
 { 
  *sx=mx-320/2; 
  *sy=my-240/2; 
  if (sx<0) sx=0; 
  if (sy<0) sy=0;  
  if (sx>32*200) sx=32*200; 
  if (sy>32*200) sy=32*200; 
 } 
  
 だったかな… 
  
 ちなみにmx,myはメインキャラクターのx,y座標 
62(1): 名前は開発中のものです。 [sage] 2005/06/15(水) 16:54:50 ID:J79aeXl5(3/4) AAS
 当たり判定は、いろいろな方法(ベクトル、三平方、色判定など)があるけども、 
 メインキャラクターが発射した弾と敵キャラとの当たり判定なら、単純に矩形(くけい)の 
 当たり判定で済みます。 
 ●弾の座標を(ax,ay)、敵の座標を(bx,by)とした場合、 
 if(ax<bx2 && ax2>bx && ay<by2 && ay2>by) 
 { 
    
 } 
 で当たっているか、否かが分かります。 
63(1): 名前は開発中のものです。 [sage] 2005/06/15(水) 16:55:21 ID:J79aeXl5(4/4) AAS
 ●メインキャラクターとマップとの当たり判定は、 
 □x座標の移動処理の直後に 
   //左上と左下 
   if(Map[x/32][y/32]!=0 || Map[x/32,(y+height)/32]!=0) 
   { 
    x=(x/32+1)*32; 
   } 
   //右上と右下 
   if(Map[(x+width)/32,y/32]!=0 || Map[(x+width)/32,(y+height)/32]!=0) 
   { 
    x=(x/32)*32; 
   } 
 で 
 □y座標の移動処理の直後に 
   //左上と右上 
   If(Map[x/32,y/32]!=0 || Map[(x+31)/32,y/32]!=0) 
   { 
    y=(y/32+1)*32; 
   } 
   //左下と右下 
   If(Map[x/32,(y+31)/32]!=0 || Map[(x+31)/32,(y+31)/32)!=0 
   { 
    y=(y/32)*32; 
   } 
  
 とやればできます。どうしてそうなるのかは、 
 計算式を参考に図を書いてみれば分かると思います。 
64(2): 名前は開発中のものです。 [sage] 2005/06/16(木) 05:05:48 ID:3Ela4Sa6(1) AAS
 俺も昔Javascriptで同じようなの作ったことあります。 
 肝心のゲームは流行らなかったけど。IE対応型RPGゲームね。 
  
 閑話休題、質問です。 
 SLGの六角型HEX画面ってどうやってるの? 
 テーブルで組んでいくと非効率的だし、実際のアルゴリズムも 
 かなり無駄な処理が入ってるのでしょうか? 
65(2): 名前は開発中のものです。 [sage] 2005/06/16(木) 11:32:14 ID:jcj8vG3U(1) AAS
 >>64 リストで組んでみては?
66(1): 名前は開発中のものです。 [sage] 2005/06/17(金) 22:36:37 ID:L6bXNRcs(1) AAS
 >>64 
 普通の2次元配列を用意すると、任意の要素の周辺には8個の要素があるが、 
 そのうち2個削れば6個になる。 
 横並びのHEXの場合、削り方には 
 ・右上と右下 
 ・左上と左下 
 の2通りあるが、行の隅・奇で決めればよい。 
  
 但し、このアドレス計算のオーバーヘッドが無視できない場合、 
 >>65の言うようにリスト構造か、[6方位][各セル]分の配列を 
 あらかじめ作ってしまう方法も検討するとよい。
67: 名前は開発中のものです。 [sage] 2005/06/18(土) 22:38:32 ID:FcEi37Wc(1) AAS
 >65-66 
 ? 
  
 話が前後するけど移動に関しては↓の「2.マップ移動システム」みたいな 
 話もある。構造が明快ではなくなるけどXY式より処理は少なくなる。 
 外部リンク[html]:members.jcom.home.ne.jp 
  
 横軸分引けば下移動、足せば上移動だから、アクションでも使えるん 
 じゃないかな? 
68: 名前は開発中のものです。 [] 2005/12/22(木) 22:39:36 ID:W7fzD8KK(1) AAS
 >>60-63が参考になった。 
69(1): 名前は開発中のものです。 [] 2005/12/24(土) 08:14:37 ID:mHMu6n/Z(1) AAS
 斜めになっている地面、斜めになっている天井とプレイヤーとの当り判定ってどーゆーふうにしたらいいんですかね? 
 地面は何とかなりそうなんですが天井の方がよくわかりません。 
上下前次1-新書関写板覧索設栞歴
あと 130 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.018s