スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

3Dダンジョンが好きすぎて

どうも、死んでました。

まぁ、突然です。
3Dダンジョンが好きで、作られずにはいられなくなりまして。
C++とDirectXで、擬似3Dに挑戦。

d1ss.png
昨日から、びみょんな作業が進行しています。

・・が、さっそく問題が2つ。

一つは
そもそも3Dを読み込んでいたらよかったんですけど・・
2Dを変形して配置していくとなると、方向の移り変わりの時、なめらかにする作業の計算が大変になる。

例えば、前から右へ向きを変えるなら、途中の斜めの場合・・

いま右に一番前に映っている右側の壁なら、
左上左下の座標がそれぞれ、一番正面にくる壁用の左上、左下座標に移る、右上、下もおなじように。
みんな大好き、sin,cosの出番ですね。
ここは簡単なのでいいんですが。。
二歩前の右側の壁だと

d1ss2.png
見えんくなった。
他もそうだけど、もし視界が広かったら・・で考えなきゃならないし、座標もマイナスになってきて、大変。
現在は横2倍の1280*480の画像で線引いて試してます。

まぁここは妥協して、元祖wizみたいな視点移動でもいいんですが。


2つ、これが問題大

今で言うと・・
0,0,1,0,0
1,1,0,1,0
0,0,0,0,0
1,1,A,1,1
見えないとこ含め、こんなんかな?

こうなら、文字からでもどこが移動範囲かわかりやすいですよね。
Aが2マス進めば、奥に見える壁に当たるわけです。

じゃあ、
0,0,1,0,0
1,1,0,1,0
0,0,0,0,0
1,1,A,1,1

ここに、スペースはあるけど一歩前に壁があって入れないようにするにはどうすればいいのか?
赤は0である必要があるから、じゃあ1は・・

Aの手前の0が1になったら、一歩も動けない。
ん?

まさか、縦横2倍の要素で考えろと・・

1,1,1
1,0,1
1,1,1
 0
 0
 0
 0
1,A,1

これで、1歩で2マス進めばいいのか。
奇数行、列は進めるかどうかのチェック用ね。

楽しいけど疲れた。

じつは本当に前に、何度かやろうとして、無知すぎて妥協を繰り返してきたんですが・・こんどこそはやったるぞー。


スポンサーサイト

テーマ : ゲームプレイ日記 - ジャンル : ゲーム

リンク
報告
20150405 新カテゴリ追加
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。