いつもこのサイトにお世話になっています。
初心者なんですが、今RPG用にマップを作成しようと思っています。
それで、下から順に
1.地面
2.建物
3.人物
という風に3層に分けて作りたいのですがどういう風にしたらいいのでしょうか?
マップ作成について
-
TKSZ
Re:マップ作成について
>>それで、下から順に
>>1.地面
>>2.建物
>>3.人物
>>という風に3層に分けて作りたいのですがどういう風にしたらいいのでしょうか?
そのままプログラムすればいいと思いますよ。
レイヤーという概念を知っておくといいかもです。
いや、別にレイヤー知らなくてもいいですが…(汗
*プログラムは、上から下へ順番に実行されていきます。
ですから、上の方のコードに地面を描画する関数を配置し、
次に建物を描画する関数を配置し、最後に人物を描画する関数を配置
すれば、いいわけです。
while(1)
{
DrawMapAboutGround();
DrawMapAboutBuilding();
DrawMapAboutHuman();
//後は適当な処理をババッ(?)とやればできます。
}
>>1.地面
>>2.建物
>>3.人物
>>という風に3層に分けて作りたいのですがどういう風にしたらいいのでしょうか?
そのままプログラムすればいいと思いますよ。
レイヤーという概念を知っておくといいかもです。
いや、別にレイヤー知らなくてもいいですが…(汗
*プログラムは、上から下へ順番に実行されていきます。
ですから、上の方のコードに地面を描画する関数を配置し、
次に建物を描画する関数を配置し、最後に人物を描画する関数を配置
すれば、いいわけです。
while(1)
{
DrawMapAboutGround();
DrawMapAboutBuilding();
DrawMapAboutHuman();
//後は適当な処理をババッ(?)とやればできます。
}
-
TKSZ
Re:マップ作成について
マップデータを作るには、上記のようなマップエディタを作るといいですよ。
いちいち、
int MapData01[300][300]={0,0,0,0,1,2,3,4,5…};
と作っていたら気が遠くなります。
以前、VB + C++ + DXライブラリでSTGを作ったときのマップエディタです。
何かの参考になれば幸いです。
いちいち、
int MapData01[300][300]={0,0,0,0,1,2,3,4,5…};
と作っていたら気が遠くなります。
以前、VB + C++ + DXライブラリでSTGを作ったときのマップエディタです。
何かの参考になれば幸いです。
-
ど素人
Re:マップ作成について
返信ありがとうございます。
それと今更なんですが、
そのマップではフリーのチップの素材を使わせてもらおうと思ってるんですが、
チップを使ってマップを作るのはどうやったらいいのでしょうか?
それと今更なんですが、
そのマップではフリーのチップの素材を使わせてもらおうと思ってるんですが、
チップを使ってマップを作るのはどうやったらいいのでしょうか?
-
雷
Re:マップ作成について
map[/url][/url]{
{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},
{0, 0, 0, 0, 0, 0, 0},
};
の様に配列で指定して、番号によって表示するものを決定すれば良いのではないかと思っていますが、
どうでしょうか?
もちろんこれをフィールドとして、その上に動作するものを表示すると考えます。
それよりも、MAPはBMPとかで読み込んだほうが確実に早くてらくだと思いますが・・・・。
TKSZさんの言うようにマップエディタを作るのが良いと思うのですが、僕自身がやろうとしていて成功していないので、なんともいえません。
なので、
マップはBMPなどを読み込む。
二次元は配列で行動可能場所を決定する。
その上に人を描画する。
マップエディタには番号をはじき出すのもあるかと思いますので、それを探して利用しても良いかもしれません。
参考になれば良いかと思い居ます。
間違っているところがあればご指摘お願いします。
{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},
{0, 0, 0, 0, 0, 0, 0},
};
の様に配列で指定して、番号によって表示するものを決定すれば良いのではないかと思っていますが、
どうでしょうか?
もちろんこれをフィールドとして、その上に動作するものを表示すると考えます。
それよりも、MAPはBMPとかで読み込んだほうが確実に早くてらくだと思いますが・・・・。
TKSZさんの言うようにマップエディタを作るのが良いと思うのですが、僕自身がやろうとしていて成功していないので、なんともいえません。
なので、
マップはBMPなどを読み込む。
二次元は配列で行動可能場所を決定する。
その上に人を描画する。
マップエディタには番号をはじき出すのもあるかと思いますので、それを探して利用しても良いかもしれません。
参考になれば良いかと思い居ます。
間違っているところがあればご指摘お願いします。