2014年8月3日日曜日

1chipMSXでゲームを 名前はフィルディーンに決定 データエディット画面 文字折り返しの場合

フィールドを作るプログラムからスタートしましたが、
そろそろ規模が大きくなってきたので、ツクールにしたいなぁと思いました。
限定8ドットの小規模パーツで32×18マスのフィールドで試しています。
名前がないのでフィールドからアレコレとフィルディーンに決定しました!
 とりあえずRPG風にやっていこうかなとはじめています。


まだ、画面は凝ったモノではありませんが、ロードはメーキングデータと
プレイデータの2種類に分かれるので、
ゲームプログラムとメーキングプログラムを分割することにしました。

0を選ぶとキャラクタセット画面になって、変えたい文字を選択できます。
テンキーで操作していきます。MSXのキャラクターセットの一覧ですが、
ハート、スペードなどのグラフィック文字はヘッダコードが含まれて2バイトで
1文字になるので省いてコードセットにしました。

 ただ、ありきたりな機能を作るだけではやる気がないので、

選択するとアスキーの文字コードが入りますが、このコードを変えてやれば
表示していないコードの書き込みができます。


VRAMの裏メモリさがしをしてみようかなとCHR$(1)~CHR$(32)くらいまでを
読み書きできるように試してみました。最初の文字が32だったので02に
すると結果は…


になりました!
確かに書けるのですが、画面いっぱいに作ったモノが埋め尽くされるんですね^^;
まぁ今で言う壁紙効果にはなるんですが、裏でメモリがよかったですね。
BASICでは文字表示用のデータ領域のみ書き込むことができるようですね。
やはりVRAMとRAMの相互書き込みが理想的かな。

もし、こんな画面になっても空白を書き込むかSCREEN1を入力すれば元通りにもどります。
マップ画面はカーソルまでマップデータを広げます^^

次は1を選びます。今のところはDATA文からロードしたもので、


データ文が1行におさまるようにしていました。これを32文字にすると
これだけ右があきます。んー詳しく言うと文字幅が32桁で、
「140 DATA”~”」の~の部分がこのデータになりますが、
右のあきの文字数は行番号と構文になります。32文字化は、
これを直接BASICで32文字のデータでやると2行にまたがるので
80桁表示にしたりする方法もありますが、SCREEN0でVRAMがリセットされます。

要するに文字折り返しは長いデータがあると2行になりわかりにくくなることになります。

そこで、ゲームデータ作成をしやすくするにはデータのみのメモリの読み書きできて
ディスク保存できるプログラムが必要になります。










0 件のコメント:

コメントを投稿