ゲームのアルゴリズムを教えて管sai (199レス)
ゲームのアルゴリズムを教えて管sai http://mevius.5ch.net/test/read.cgi/gamedev/1053853069/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
60: 名前は開発中のものです。 [sage] 2005/06/15(水) 15:58:31 ID:J79aeXl5 >>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) } } } http://mevius.5ch.net/test/read.cgi/gamedev/1053853069/60
61: 名前は開発中のものです。 [sage] 2005/06/15(水) 16:02:04 ID:J79aeXl5 ●スクロールは、常にメインキャラクターを画面の中心に置いておきたい訳だから 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座標 http://mevius.5ch.net/test/read.cgi/gamedev/1053853069/61
62: 名前は開発中のものです。 [sage] 2005/06/15(水) 16:54:50 ID:J79aeXl5 当たり判定は、いろいろな方法(ベクトル、三平方、色判定など)があるけども、 メインキャラクターが発射した弾と敵キャラとの当たり判定なら、単純に矩形(くけい)の 当たり判定で済みます。 ●弾の座標を(ax,ay)、敵の座標を(bx,by)とした場合、 if(ax<bx2 && ax2>bx && ay<by2 && ay2>by) { } で当たっているか、否かが分かります。 http://mevius.5ch.net/test/read.cgi/gamedev/1053853069/62
63: 名前は開発中のものです。 [sage] 2005/06/15(水) 16:55:21 ID:J79aeXl5 ●メインキャラクターとマップとの当たり判定は、 □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; } とやればできます。どうしてそうなるのかは、 計算式を参考に図を書いてみれば分かると思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1053853069/63
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s