ゲームのアルゴリズムを教えて管sai (199レス)
上下前次1-新
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
>>130130(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です。お願いします。
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シューティングゲームを作ってみようと思うのですが
あの手のゲームは絵や映像の技法で言うところの「一点透視法」な画面だと思うのですが
その考えで行くと自キャラが撃つ弾は全て画面中央の一点に向かってしまう事になってしまいます(リアルに考えるとそれで正しい)
スペハリや亜流はその辺をどうやってそれっぽくフェイクしているのでしょうか?
148: 名前は開発中のものです。 [sage] 2009/02/13(金) 20:36:46 ID:sIJuqaxe(1) AAS
やっぱそんなもんか、俺もGEM2までしかもっていない
149: 名前は開発中のものです。 [sage] 2009/02/14(土) 13:48:41 ID:YNh7Hq3A(1) AAS
よくわからないけど、画面表示の向きと、画面上の自機の向きをバラバラに考えて、上下左右移動時は時機の向きがそれぞれの方向に慣性付きで移動するようにして、その方向に弾がでるようにすればいいんじゃない?
150: 名前は開発中のものです。 [sage] 2009/02/17(火) 17:38:25 ID:R5C7BuD2(1) AAS
>>147
まず、一点に集中しちゃうのは平行線だけだぜ
よしんば自機の弾が平行にしか撃てないとしても、集中するのは無限遠点だ
ゲーム時間中に到達するのかい
151: 名前は開発中のものです。 [sage] 2009/02/17(火) 23:44:47 ID:DsZEWqSe(1) AAS
ゲーム画面中の10km先と無限の先は何ドットずれるんだい?
152: 名前は開発中のものです。 [sage] 2009/02/21(土) 00:00:04 ID:T1jozkkK(1/2) AAS
crysisの四脚の敵とか
モンハンのシェンガオレンみたいのってどうやって作るんでしょう?
アニメーションさせれば平の地面を歩く程度はできると思うんですが
凹凸の地面を歩かせたりするにはプログラムからボーンを調整したりするんでしょうか?
153: 名前は開発中のものです。 [sage] 2009/02/21(土) 00:33:55 ID:HdiuLFdj(1) AAS
モンハンってそもそも平面だけじゃね?
154: 名前は開発中のものです。 [sage] 2009/02/21(土) 10:29:20 ID:ps9IGcWP(1) AAS
IK
155: 名前は開発中のものです。 [sage] 2009/02/21(土) 17:45:04 ID:T1jozkkK(2/2) AAS
いや、モンハンは分かりやすいかな?程度で出しただけなんで。
IKでやるのは理解してるんですが、
ボーンと地面の判定→先端ボーンの位置を指定→IKで根元までって感じなのでしょうか?
・・・今思うとDirectXの話な気がしなくもない。
上下前次1-新書関写板覧索設栞歴
あと 44 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s