ページ 11

RPGでのスクロールの仕方

Posted: 2011年5月01日(日) 11:32
by speed
すごい初歩的な質問で申し訳ないです

RPGでのマップスクロールってありますよね?画面に入りきらないマップを表示する時のアレです
それを実装したいと思っているのですが
最初に画面に全ての物体を描画しておいて(画面に入りきらないものも)
キーボード入力に応じて各オブジェクトのx座標、y座標を移動させるといったやり方しか思いつきません

このやり方は良いのでしょうか?良いというのは効率的かどうかということです
何しろ私の考えたものですので効率的かどうかわかりません
難しい質問ですが回答お願いします

Re: RPGでのスクロールの仕方

Posted: 2011年5月01日(日) 11:44
by softya(ソフト屋)
それだと巨大なマップだと描画が遅くなる恐れがあります。
画面内のパーツだけを描画するのが最適な方法です。

ここの「C言語交流フォーラム ~ mixC++ ~」内でRPG講座を書きましたので良かったら参考にしてください。
http://dixq.net/forum/blog.php?u=114&sd=a&c=2
DQ風RPGの作成講座です。

Re: RPGでのスクロールの仕方

Posted: 2011年5月01日(日) 12:19
by speed
ソフト屋さんのマップ管理の記事を一通り、読ませていただきました
なかなか難しそうな式が並んでいますね・・・
とりあえず一つ一つ紐解いて見ていきたいと思います

Re: RPGでのスクロールの仕方

Posted: 2011年5月01日(日) 12:36
by speed
だいぶ難しそうですが
1マス1マス移動しないゲーム、例えばソフト屋さんの知っているものなら聖剣伝説とかです
そういうものでもRPG講座と同じ感じでできますか?

Re: RPGでのスクロールの仕方

Posted: 2011年5月01日(日) 12:47
by softya(ソフト屋)
RPG講座のスクロールはドット単位で行っていて、単に移動距離をマス単位で縛っているだけです。
その理由は、マップの角で引っかかってほしくなかったからなんで、そこをちゃんと作るなら別に問題有りませんよ。

[追記]
ちゃんと作るというのは、自動のマップの角避け処理を作るって事です。

大雑把な例を書くと
□が歩けるところで■が障害物で●が自キャラとして、上方向に移動する場合
■■□
□●□ 
これだと真上に移動できませんが、右上は空いてますよね。
この開いている空間に自動的に移動するって処理を追加する必要があります。

Re: RPGでのスクロールの仕方

Posted: 2011年5月01日(日) 12:59
by speed
なるほど滑らかに動くようにするためですな
勉強になりますん