2013年1月20日日曜日

背景スクロール…できたっぽい?

仕事やらプライベートやらで、週に1日ぐらいしかまともにゲーム開発ができそうにないけど、色々やってるらしい魔偶です(汗

前々から悩んでいた背景スクロール処理が、やっとそれっぽくできました。



(∩´∀`)∩ワーイ

長い道のりだったナ…。

アルゴリズムとしては、3Dの板モデルに背景テクスチャ画像を当てたものを2つ横に並べるように用意して、それぞれを左に位置座標を移動させるだけ。

んで、左の板モデルが画面の外にすべて出たら、画面右の外に位置座標を移動させて…というのを2つの板モデルで繰り返して行うわけですが、何をこんなに悩んでいたかというと、この座標関係なんですわ。

ちょっと経緯を振り返ると…

①2枚の板が自機の後ろで移動する…板が画面の外に出たら、移動初期位置に戻して、再び移動する。
②板は自機のすぐ後ろにあると、板と自機が重なってしまうため、自機のもう少し奥に板があるようにZ座標を設定して、横に移動させる。
③板が画面の外にすべて出た時、その出た板の右にある板のすぐ右に来る座標を計算。
④単純に板の大きさ分を加算すればその座標の値に適していると思いきや、画面表示範囲にある板(右にある板)と微妙に重なっているようで、綺麗につながらない。
⑤じゃぁ根拠はないけど0.01ぐらいずらして微調整すればいいのかな?と思いきや、今度は離れてしまったりして結局綺麗につながらない。

って感じでいました。

3D系は座標で悩むことが色々あるなぁーと思いつつ、そもそものアルゴリズムで考えていたことは間違いではないので、3Dの座標関係で…と情報収集すると、3D座標を変換するhgcnvaxis命令というものがヘルプにあることを知りました。

これを使うと3D座標を2D座標に変換することができるということで、改めて思えば「表示する位置座標の考え方は3D視点というよりも、見せ方の2D視点で考えた方がアルゴリズムに沿っているのではないか?」と発想にプラスαな要素が加わり、上記⑤で悩んだ補正値にこの表示位置座標を2D座標で計算した値でカバーすることにより、やっとそれっぽく対応ができました。

…と、色々書きながら、後で自分が読み返すとワケがわからんくなりそうな文書だけど、ベクトルもわからんような魔偶には、せいぜい自分がわかる敷居まで下げる必要があるということで。
今回は3D座標計算がよくわかんなかったから、まだ理解できている2D座標に変換することで解決しましたよーというお話でした。
前回記事「悩み中」のコメントで、まさにmirage17さんが「自分のできる技術の中で、いい作品を作ればいいと思います」とおっしゃってくれたことですね。自分のできる2D座標スキルで乗り切れそうですよ。


さて、お次は…1面の構成をちょっと考えて、実装して行きましょうかね。
ってか、敵キャラも全然用意していないので、そのへんのデザインやら何やら…。
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

0 件のコメント:

コメントを投稿