Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1 2 3 4 5 6 7 8 9 10 11 12 1325
次のページ(過去)
返信[1]
親投稿
ケイン KEIN.HORGAN
今回は READ/DATA 命令を使用してプログラムを改修します。 まずは READ 命令と DATA 命令についてです。 この二つの命令は、セットで使うことで色々なデータを一度に設定する為に使えます。 特に、文字列データと数値データを同時にセットしたい時などに効果を発揮します。 が、まずは使い方の例として一番簡単な単純読み出しについて実装しました。 まずデータ定義部ですが、327行目からがそれになっています。 ここはプログラムの最後の部分になっています。 データはプログラムのどこにおいても構わないのですが、一番最初か、または一番最初においておくことで、後の修正が楽になることが多いため、このように最後においています。
1そうだね
プレイ済み
プレイ日記
ケイン KEIN.HORGAN
シンプルRPG製作日記 22日目 データを定義する「READ/DATA 命令」
7そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
DATA の一番簡単な使用例です。 まずはこのプログラムの意味が分かるようになるといいと思います。 (ヘルプを見れば分かると思います) ACLS READ A$ DATA "TEST" PRINT A$
0そうだね
プレイ済み
返信[7]
親投稿
ケイン KEIN.HORGAN
やっぱり絵がついてるとぐっとそれっぽくなりますねー この構図なら、3D機能も活かせる?
1そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
これでマップに色がついたので、今回は終了です。 次回ですが…… 前回、「マップの切り替えで新規命令は使わない」なんてのたまった記憶があるのですが、あれは間違いでした。 マップ切り替え時には、多分FADE 命令を使った方がそれっぽいです。 これの説明もしないといけないなぁ、と思いつつ、多分次回はマップ定義用のREAD, DATA 命令の説明になるでしょう。
0そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
こちらの画面は主人公についてです。 60行目で主人公色を指定。 61行目で、主人公が道の上にいる場合に、背景色を変更します。 (見た目を考えた結果の処理です) 同じことを、移動時にも行っています。 (86行目しか見えていませんが、そこからがそれです) ここの処理は、60行目からと全く同じなので、自作命令にまとめたほうがよいかもしれないです。
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
ただし、ここで注意するべきなのが" "(空白文字)です。 空白文字とは、つまり画面に何も描画しない、という事なので、ここで描画色を指定しても画面には反映されません。 ここで指定するべきなのは、つまり描画色ではなく「背景色」となります。 245行目がそれで、指定としては、 COLOR ,#TYELLOW となっています。 描画色を指定する必要がない時は、このように描画色を省略し、いきなり , とする事ができます。 ここで変更した背景色は、忘れないうちに直しておきます(251行目)
0そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
COLOR 命令は、文字の色と背景の色を指定できる命令です。 今回は、マップもキャラクターも文字で描画しているので、このCOLOR 命令を使用して色をつけていきます。 まずはマップについて。 240行目を見てください。前回はここで直接1行分のマップを描画していましたが、今回は1文字毎に色が違うため、その手段は使えません。 文字を判別するとき、ここで直接1文字1文字判別するのは大変なので、一旦文字列 S$ に保存しています。 243行目からが実際の処理です。 FOR ループにて、「文字列の先頭から1文字ずつチェックする」を実現しています。 条件を満たした際に(THEN)、COLOR 命令で色を指定しています。 色を指定した後、PRINT にて1文字表示(この際、自動改行しないようにします)して、また次の文字をチェックする、というのが基本の流れです。
0そうだね
プレイ済み
プレイ日記
ケイン KEIN.HORGAN
シンプルRPG製作日記 21日目 マップに色をつける 「文字描画色と背景色を指定するCOLOR命令」
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
次回予告 フィールド移動ができるようになった次の作業としては、マップの切り替え(家の中に入るだとか)が妥当だとは思うのですが、新規命令を使う場面がない…… ので、そこは飛ばして、マップに色でもつけようと思います。 (なお、画像は今回までの公開キーです。 どうしても、どうしてもコードが気になる方はどうぞ。 このソース内の事なら質問も受け付けます)
0そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
前回終了後「どうせ後は変数をちょろっといじって上下方向の修正を加えればスクロール完成かな」とのんびり構えていたら、バグ出まくって気づいたら1日過ぎていました。 バグ怖い。 今回は新規命令を使ってはいない上に、完成したコードを眺めてみると、これを誰かの参考にしてもらうのも気が引けるレベルなので、実はあんまり説明する気力が(汗 というわけで、今回は実行時の画像を提示してお茶濁し。 主人公を中心に持ってきたため、マップの端の方にいるときはマップデータが足りません。 足らない部分は、グレーで埋めてみました。
0そうだね
プレイ済み
プレイ日記
ケイン KEIN.HORGAN
シンプルRPG製作日記 20日目 マップスクロールの実装完了? (新規命令の使用は無し)
6そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
FOR 文使えばいいと思います。
0そうだね
プレイ済み
返信[11]
親投稿
ケイン KEIN.HORGAN
いえいえ、これはこれで勉強になります。 よく質問トピックみていて「何を言っているのか(聞きたいのか)分からん」と思ってるんですが、いざ説明する側になると本当、言いたいことを分かりやすく伝える事の難しさを感じます。 もっと説明上手くなりたいなぁ……
0そうだね
プレイ済み
返信[9]
親投稿
ケイン KEIN.HORGAN
おう…… すみません、わかりにくい書き方をしてしまったみたいです。 それは思考の筋道を説明する為の命令で、古い奴ですね。 2枚目の画像を見てください。
0そうだね
プレイ済み
返信[15]
親投稿
ケイン KEIN.HORGAN
いろいろ端折っているので、これだけじゃ動かないです。 どうしても、といのであれば、 ACLS X=0:Y=0 とつけ加えて、WHILE ~ TRUE の中にVSYNC を追加して、BUTTON() の判定をBUTTON(2) に変更し、@MSG の先頭にLOCATE X:Y を追加すればサンプルとして動きが確認できるとは思います。
0そうだね
プレイ済み
返信[7]
親投稿
ケイン KEIN.HORGAN
あれ、すみません、短縮できる場所あります?
0そうだね
プレイ済み
返信[5]
親投稿
ケイン KEIN.HORGAN
あ、しまった。 えーと、2レス目にある「S_START」「S_LEN」は、「V_LEFT」「V_LEN」の間違いです。 最初は「S_~」の変数名にしていたんですが、解説書いている間に変数名を変更したんでした。 (V_ は、「VIEW」を意味させました)
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
次の画像は、最初の画像のコードをMID$ を使って書き直したものです。 幅13マスの枠内に表示するので、基本的には「主人公の左右±6マス」をマップデータから抜き出せばよいのですが…… 「主人公がマップの左(右)の方にいて、マップの左(右)に6マスもない」 というような状況に対処する為に、条件判断を行っています。 V_LEFT は、画面に表示される左端のマップ座標 V_RIGHTは、画面に表示される右端のマップ座標 ADD_LEFT,ADD_RIGHT は、マップが表示域に不足している場合の不足量。 この数だけ空白で埋めます。 202行で抜き出しを行い、205行で表示を行っています。 これでようやく主人公のいる行の表示が出来るようになったので、次回は同じような感じで上下方向も実装したいと思います。
1そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
ここからソースの説明 最初の画像は、「前回の奴じゃ主人公の右側しか表示されないから困る。左側も表示しよう」とした際に、とりあえずわかりやすい形で実装したものです。 コメントアウトしている部分は、エラーが出るものです。 前回時点では、G_PX = 3 なので、G_PX-4 より左はマイナスの値になってしまいます。 それだと文字列の範囲外なので、エラーになるわけです。
0そうだね
プレイ済み