ゲームのアルゴリズムを教えて管sai (199レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

60
(1): 2005/06/15(水)15:58 ID:J79aeXl5(1/4) AAS
>>59
昔のゲームを逆アセンブルで解析してみて参考にするのは、どうだろう…

私は、解析したことがないので、どうなっているのか分かりませんが、
少し昔の2Dアクションゲーム(ロックマン、マリオ、魔界村、ソニック、スペランカー、etc)
のマップは、おそらく32×32ドット(24×24ドット)程度の大きさで区切られたマスの組み合わせで
表現されていると思われます。
それを、2次元配列でint Map[300][300]={ {0,0,0,1,0,1,…のように表して
省16
61
(1): 2005/06/15(水)16:02 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;
省5
62
(1): 2005/06/15(水)16:54 ID:J79aeXl5(3/4) AAS
当たり判定は、いろいろな方法(ベクトル、三平方、色判定など)があるけども、
メインキャラクターが発射した弾と敵キャラとの当たり判定なら、単純に矩形(くけい)の
当たり判定で済みます。
●弾の座標を(ax,ay)、敵の座標を(bx,by)とした場合、
if(ax<bx2 && ax2>bx && ay<by2 && ay2>by)
{
  
省2
63
(1): 2005/06/15(水)16:55 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;
  }
省19
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.651s*