プレイ日記
スピーカー A7GSM51L347
DATA文で書けない長さのマップの場合の対処法を作りたかったので DATA文をブロックごとに分割して処理で繋ぎ合わしてみた。 最終目標はBGSCREENの限界を処理によって無視することだが今のところはこれでいこう
10そうだね
プレイ済み
返信[1]
親投稿
b.K.b knt3ds
な、なるほど…! 今まで折り返し表示オフでなんとか頑張ろう…、とか思っていましたが、そういうテクニックがあるとは…。
0そうだね
プレイ済み
返信[2]
親投稿
スピーカー SPK_TURN_RIGHT
今のところは忌まわしきBGSCREENの制限で横はbgputで画面分x3のサイズまでしかできないから広すぎると同一マップにできないんだよね… BGSCREENの制限をどうにかするにはマップをスクロールしている間にBGPUTするのが一番だと思うんだけど 絶対処理がめんどくさいのでやめた
1そうだね
未プレイ
返信[3]
親投稿
ツララ LongIceSword
DATA文から持ってくるより、全体のデータを格納してる配列から表示に必要な範囲だけ表示用配列に持ってきて、画面に入らない部分で書き替えてからスクロールさせてやればいいんじゃないです? BGPUTだと面倒くさいですけど、BGFILLなら見えてる範囲を中心の1マスとした3×3の方眼みたく出来ると思うんですけど。 ちなみにこれ作り中のスクロールのサンプルなんですけど、上下左右の端を上記方法でループさせてます。
1そうだね
プレイ済み
返信[4]
親投稿
スピーカー A7GSM51L347
DATA文を配列変数に組み込んでMID$でBGPUTするシステムなんで配列変数はあるんだけど、どう取りだせばいいのかが悩ましいのよね とは言っても既存のを直すのって難しいし面倒くさいからこの形式に落ち着いたんだけど
0そうだね
プレイ済み
返信[5]
親投稿
スピーカー A7GSM51L347
最初はそうしようかな、と思ってましたが横移動の時の見えない部分の設置が難しくて投げ出したのです。どうやって組んでるんですか?このポンコツ脳じゃさっぱりでした。
0そうだね
プレイ済み
返信[6]
親投稿
ツララ LongIceSword
要するに見切れないようにするだけですから、スクロールする分だけ見えてない領域に多めにBGを置いておいて、スクロールが完了したタイミングでBGOFSを初期位置に戻して、すぐに移動先の位置に合わせたBGの配置に書き換えるってのを繰り返してるだけで上手く行くはず。 BGFILLだとほぼ一瞬で処理が完了するのでほとんどチラツキも無く書き換え出来ますよ。 読み込む領域の指定の仕方は、表示しているキャラクターの座標からFOR文の開始と終わりの変数の数値をBGの表示幅分繰り返すだけになるよう調節して、カウンタ変数をデータ配列の添字にしてるだけで、数値の範囲外エラー回避にMOD演算子活用しまくってます。 思ったんですけどデータ文で書くんじゃなくて、見えてないグラフィック画面にドットで描いておくと、GSPOITで読み込めばRGBREAD命令で4つのレイヤーの要素に分解したりできませんかね。
0そうだね
プレイ済み