プレイ日記
ケイン KEIN.HORGAN
シンプルRPG製作日記 15日目 前編:マップの製作~その1~ 後編:キャラクターの移動制限~その1~
7そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
前編:マップの製作~その1~ とうとうやってきました、マップの製作です。 これでちょっとだけRPGっぽくなります。 コンソール画面しか使わない予定なので、どうなるか自分でもあまり想像出来ないのですが、プチコンは比較的キャラクターが豊富なので、どうにか頑張りたいと思います。 さて、25行目からを見てください。 とりあえず、いつも通りPRINT文を使ってみました。
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
家、山、森、平原、道、そして枠を表示するようになっています。 これを実際に実行してみたのが今回の最初の画像です。 ちゃんとマップっぽく見えるでしょうか? なお、42行目には文末に「;」とあります。 PRINT文実行後は自動改行されますが、画面の最終行で自動改行した場合、自動的に画面がスクロールしてしまいます。 この自動改行を防ぐのが「;」の役割です。 -------------------- ちょっとした小ネタ。 「上書き」モードについて。 プログラムを入力する際、何も設定をしなければ挿入モードになっているのですが、マップを編集する場合は挿入モードは非常に面倒です。 何かを配置する度にマップがずれてしまいます。 こういう時は、「上書き」モードを使うとよいです。 キーボード右側にある「INS」とあるボタンを押すと、挿入/上書きが交互に切り替わります。
1そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
後編:キャラクターの移動制限~その1~ 次はキャラクターの移動です。 と、その前に、まずはキャラクターの初期位置を変更しました。 最初に家の前に表示されるように、45行目のX,Yの値を変更しています。
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
次に…… 前回までのプログラムを実行すると、キャラクターがどこまでも歩いてしまい、そのうち画面外に出てしまいます。 そうすると、「Out of range」エラーが発生してしまいます。 (これは、「範囲外を指定しました」というような意味です。画面外に文字は表示出来ないのでエラーになる、というわけです) これを防ぐために、キャラクターの移動を制限するコードを組み込みます。 それが、53,54行目です。 具体的には、 「上ボタンが押された時、現在座標であるYの値をチェックして、一番上にいない時にだけ座標の変更をする」 という処理です(下ボタンも同様) まだ修正していない左右ボタンについても、同様の考え方で修正が可能です。
0そうだね
プレイ済み
返信[5]
親投稿
ケイン KEIN.HORGAN
さて、この段階で一度実行をしてみて、ちゃんと思った通りに動くかどうか確かめてみます。 当然と言えば当然なのですが、現状では山だろうが枠だろうが主人公は気にせず進んでしまいます。 これはまたそのうち対処します。 また、左右移動したらエラーが発生するのも想定通りです。 上下移動と同じように修正すればいいだけの話なので。 そして、上移動も問題ありません。修正がうまく働いています。 しかし…… 下移動が何か変です。 エラーは出ないのですが、マップがスクロールするし、一番下で左右移動するとキャラが分裂するし、これはいただけません。 次回は、この点の修正と、後は当たり判定でもやろうかと思います。
0そうだね
プレイ済み
返信[6]
親投稿
つっくん TUKATUKA-1123
自分はRPG作ってるんですが、コンソールが自動改行してしまって困ってました。 『;』使えば一番下にも表示出来るんですね!
1そうだね
プレイ済み
返信[7]
親投稿
ケイン KEIN.HORGAN
なお、そろそろバックアップの意味も兼ねて、現状のものをアップロードしてみました。 どんな不具合が出ているのか興味のある方がいれば、ダウンロードしてみて下さい。
0そうだね
プレイ済み
返信[8]
親投稿
ケイン KEIN.HORGAN
> つっくんさん そうなんですよねー これ、地味に気づいていない方も結構いるみたいなので、説明に加えてみました。 役に立ったみたいで良かったですー
0そうだね
プレイ済み
返信[9]
親投稿
ぴくと kanau1203
マップをPRINTしているようですが、 DATA文として記述すれば、まだまだ発展しそうですね^^
0そうだね
プレイ済み
返信[10]
親投稿
ケイン KEIN.HORGAN
> ぴくとさん ですねー PRINT 文だと、どうしても表示範囲が画面サイズに縛られるので限界がありますよね。 (画面の端まで移動したら新しいマップを読み込む、というような形にせざるを得ない) 今はこんなんですが、多分まともにフィールドを描画しようと思ったら、DATA & READ 命令の使用は必須だと思います。
0そうだね
プレイ済み
返信[11]
親投稿
MIKI ifconfig
マイキャラ print の後ろにも ; いるのでは? あとマイキャラけす print " "; も
0そうだね
プレイ済み
返信[12]
親投稿
ケイン KEIN.HORGAN
> みきさん そうなんですよね。 自分も特に疑問に思わず、いつも「文字キャラクターを移動させるならこんな感じ」と思ってたんですが、実際にやってみると思わぬ不具合が、って奴です。 折角だからちゃんと説明すると、 「キャラクター移動と言っても、使っているのはPRINT文。 PRINT文を使う場合、通常使用だと自動改行するが、最下行で自動改行された場合は画面がスクロールする」 というのが問題の原因です。 まあ、大体のコンソールゲームの場合、キャラクターが最下行を移動する、というようなケースは稀だと思うので(大体は最下行は枠か何かの為の表示位置になってる)あんまり気にしなくてもいい部分なのかもしれませんけどね。
0そうだね
プレイ済み
返信[13]
親投稿
あたすも最近;で改行しないの知った・・・まあ、たいがい25行くらいで止めちゃうからなあ(´ρ`)
0そうだね
プレイ済み
返信[14]
親投稿
MIKI ifconfig
そういえばいちばん右下に print " "; したときどうなるのかな? スクロールするようだと右下にはキャラを書けない事になりますね。
0そうだね
プレイ済み
返信[15]
親投稿
ケイン KEIN.HORGAN
なるほど、確かめてみました。 とりあえず、PRINT した段階ではスクロールしなかったですね。 その後、続けてPRINT を実行した時にスクロールしました。 だから、一応大丈夫なようです。
0そうだね
プレイ済み
返信[16]
親投稿
MIKI ifconfig
あ、確認してくれたんですね。ありがとうございます!!
0そうだね
プレイ済み