斜め見下ろし型のRPGについて疑問がわきました(スーパーマリオRPGを見ていて思いました)
①奥行きという概念があるためキャラクターの奥行きの並び順が常に入れ替わりますよね?
2Dでの移動だと画像を読み込む順番を考えればよかったのですが、この場合どうすれば?
②2Dでの自然なジャンプの仕組みは分かりましたが斜め見下ろし型だと
画面向かって奥側にジャンプした場合などy座標がもととは変わりますよね?どうすればいいのでしょう?
RPGの仕掛けの仕組みが分からない
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: RPGの仕掛けの仕組みが分からない
描画順番を見た目の奥から順にZソートします。①奥行きという概念があるためキャラクターの奥行きの並び順が常に入れ替わりますよね?
2Dでの移動だと画像を読み込む順番を考えればよかったのですが、この場合どうすれば?
SFC時代の2DのアクションRPGでもRPGでも普通にしてると思いますが。
聖剣伝説2とか動画をチェックしてみてください。
[youtube][/youtube]
横の座標と奥行きの座標、高さの座標を別に持てば良いことです。②2Dでの自然なジャンプの仕組みは分かりましたが斜め見下ろし型だと
画面向かって奥側にジャンプした場合などy座標がもととは変わりますよね?どうすればいいのでしょう?
それらの情報を合成して画面表示します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: RPGの仕掛けの仕組みが分からない
手前の方から順番に描画していくってことができるのでしょうか?
できるとしたら、どうやってやればいいのでしょうか?
2つ目のものも理解が出来ません
頭が悪くて読解力がないのも分かっています できれば教えてください
できるとしたら、どうやってやればいいのでしょうか?
2つ目のものも理解が出来ません
頭が悪くて読解力がないのも分かっています できれば教えてください
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: RPGの仕掛けの仕組みが分からない
プログラムコードが提示されていないので概念的に説明します。
キャラクタの左下座標がCX,CZ,CHで管理されているものとします。
CXが横座標で右に行くと大きくなります。CZがマップ上の奥行きの位置座標で奥に行くほど大きくなります。CHがジャンプの高さで高いほうが大きな数値です。
①奥行き管理
キャラクタが番号で管理されていたら、キャラ番号とCZの奥行き方向の座標を構造体配列に入れてZの大→小で並ぶように構造体をソートします。
あとは、構造体を先頭から取り出して構造体に記録されたキャラ番号で描画処理すれば奥から描画できます。
②ジャンプ処理
スクリーンに表示するマップの左下座標はSX,SZで、スクリーンサイズはSCREENX,SCREENYとします。
キャラクタの画面上の左下の表示座標は
viewX = CX - SX
viewY = SCREENY - (CZ - CH - SZ)
となります。
[追記]
これは、あくまで一例でこういう考え方もあるよって事です。
処理する方法や考え方には色いろあると思ってください。
キャラクタの左下座標がCX,CZ,CHで管理されているものとします。
CXが横座標で右に行くと大きくなります。CZがマップ上の奥行きの位置座標で奥に行くほど大きくなります。CHがジャンプの高さで高いほうが大きな数値です。
①奥行き管理
キャラクタが番号で管理されていたら、キャラ番号とCZの奥行き方向の座標を構造体配列に入れてZの大→小で並ぶように構造体をソートします。
あとは、構造体を先頭から取り出して構造体に記録されたキャラ番号で描画処理すれば奥から描画できます。
②ジャンプ処理
スクリーンに表示するマップの左下座標はSX,SZで、スクリーンサイズはSCREENX,SCREENYとします。
キャラクタの画面上の左下の表示座標は
viewX = CX - SX
viewY = SCREENY - (CZ - CH - SZ)
となります。
[追記]
これは、あくまで一例でこういう考え方もあるよって事です。
処理する方法や考え方には色いろあると思ってください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。