ページ 1 / 1
アクションゲームの移動について
Posted: 2010年6月14日(月) 01:00
by たろう
アクションゲームの移動でフィールドを
int hantei[15][20] = {
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
};
のようにして通れない場所と通れる場所を区別しますが、
これ以外に通れる場所と通れない場所を区別することができる方法ってあるのでしょうか?
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 09:15
by KEYONN_
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 12:52
by たろう
やっぱりint hantei[15][20] = {
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
};
を使わない駄目みたいですね。
この方法以外でやることはできないのでしょうか?
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 13:25
by たいちう
> この方法以外でやることはできないのでしょうか?
この方法でどんな問題があるか具体的に書いてくれれば、
解決方法を教えてもらえると思いますが。
その他の方法で比較的汎用性が高そうなのは、
フィールドの全ては同じだが配列で壁を表現するとか、
行けない部分を数式で判定するとか、でしょうか。
壁は縦と横があるので、フィールドを配列で持つよりも少し複雑です。
数式の場合は、元のマップやマップ生成のルールが単純でないならば、
やる価値はあまりないかな。
結局あなたが何をやりたいかです。
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 13:40
by たろう
回答ありがとうございます。
自分がやりたいのは、配列以外で壁などを作って通れなくすることはできるのかということです。
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 13:53
by たいちう
> 自分がやりたいのは、配列以外で壁などを作って通れなくすることはできるのかということです。
私が聞きたいのは、何故配列以外で作りたいのか、ということです。
一連の質問でのやり取りを見ると、ゲームを作る上での定石というものを、
もっと練習したほうが良いと思います。
配列を使わないことで素晴らしいゲームになるアイデアがあったとしても、
まだ自由にプログラムを作れるレベルではないと思います。
まずは普通のゲームを普通に作れるようになることだと思いますが。
その上で、何故配列を使いたくないのですか?
使わないですむ方法は色々ありますが、お勧めできる方法かどうかは、
もっと詳しく聞かないと判りません。
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 13:57
by シエル
>>自分がやりたいのは、配列以外で壁などを作って通れなくすることはできるのかということです。
できないことはないでしょう。
全体的に質問内容がアバウトすぎる気がします。
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 14:03
by たろう
ただ気になっただけなので質問しました。いろいろあるんですか。
>まずは普通のゲームを普通に作れるようになることだと思いますが。
はい。そうしたいと思います。
ただ、その色々の中のなんでも一つでいいので簡単に説明してはもらえないでしょうか?
難しくてもよいので。よろしくお願いします。
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 14:25
by たいちう
何でも良いならば、既に書きました。
> 行けない部分を数式で判定するとか、でしょうか。
例えばS(sx, sy)の近く(縦横3マス)には行けないとして、
このように書けます。
if (abs(sx - x) + abs(sy - y) <= 3)
// 行けない
else
// 行ける
原理的にはどのようなマップも数式で表せますが、
単純なルールのマップでなければ、この方法は使わないほうが良いでしょう。
その他の方法としては、背景のビットマップの色で判定とか。
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 14:47
by たろう
まずはゲームを作ることから始めたいと思います。
回答ありがとうございました。
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 15:19
by softya
色々ありますよ。
(1)マップチップの番号で通れる通れないを管理する。
(2)マップチップ番号の情報配列を作って管理する。
マップチップ番号で通行可否・マップチップのアニメーション有無・前景背景などを管理。
(3)マップ配列→アトリビュート配列(マップ配列上の番号で参照)→マップチップ配列(アトリビュート配列の構造体に含まれるマップチップ番号で参照)と更に高機能化します。アトリビュート(属性)とは(2)でも書いた付随する情報のことですね。アトリビュートで通行可否・マップチップのアニメーション有無・前景背景のマップチップ番号などを管理ます。
(2)(3)辺りはプロだとこうするって例ですが高度な知識が不可欠です。
これ以外にも管理する方法は、作る人の趣味も含めて千差万別で数え切れない方法が有り得ます。
Re:アクションゲームの移動について
Posted: 2010年6月14日(月) 16:56
by dic
反応ないので消しますね
