プレイ日記
ボーネン gurigura2003
どなたが動ける範囲固定とこの大きい四角の線を消す方法教えてください! それとスクロールも…
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
動ける範囲を固定とありますが動ける範囲を制限するってことで よろしいですか? 対象のキャラクターの座標の変数をIF命令でチェックしてその範囲を 超えそうになったときにそれ以上移動しないようにすれば動ける範囲を 制限できます。 PX=PX+VX 'VX:X方向移動量 IF PX<32 OR PX>200 THEN PX=PX-VX 大きい四角を消す方法は描画している命令をREM命令でコメントにするか 同じサイズの四角を背景色と同じ色で描画するかですね。 スクロールは何をスクロールさせたいのですか? コンソール文字ですか?BGですか?グラフィックですか?
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
IF PX<32 || PX>200 THEN PX=PX-VX の方が適切でしたね。^^;;;
0そうだね
プレイ済み
返信[3]
親投稿
ボーネン gurigura2003
うーん…できません…
0そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
GOTO @LOOPの後に記述しても実行されませんよ~ それと32とPXの間の記号は『"』ではなく『||』(Aのキーの左隣)です。 私が示したプログラムではPXがキャラの座標,VXが移動量としているので ホーネンさんのプログラムに組み込むときは変数名を直さないと 上手くいきません。 IF X<32 || PX>200 THEN X-X-SX となりますね。
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
IF X<32 || X>200 THEN X-X-SX の間違いです^^;;;
0そうだね
プレイ済み
返信[6]
親投稿
ボーネン gurigura2003
どはどうすればいいですか?よく分かりません…
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
まずこのプログラムが@LOOP~GOTO @LOOPまでを繰り返しているって いうのは理解できますか? プログラムは通常上から下に実行をしていきますがGOTO命令があると GOTOで示されたラベルにジャンプします。 そのため14行目に記述されたIF命令は実行されないので移動範囲の 制限は掛かりません。 SPOFS命令の前にIF命令を移動して下さい。
0そうだね
プレイ済み
返信[8]
親投稿
ボーネン gurigura2003
こう?ですか?
0そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
移動量を元に座標の計算した後に座標のチェックをする必要があります。 11行目のSPOFSの前に移動して下さい。
0そうだね
プレイ済み
返信[10]
親投稿
ボーネン gurigura2003
確認よう
0そうだね
プレイ済み
返信[11]
親投稿
ボーネン gurigura2003
↑こうですよね?これでもできません…
0そうだね
プレイ済み
返信[12]
親投稿
otta777 otta777a
すみません。 10行目の記述が間違っていました。 X-X-SX → X=X-SX
0そうだね
プレイ済み
返信[13]
親投稿
otta777 otta777a
大きい四角はグラフィック画面に前に使っていたアプリで描いた物が 残っているだけのようなのでダイレクトモードで ACLS と入力すれば消えますよ。
0そうだね
プレイ済み
返信[14]
親投稿
ボーネン gurigura2003
できましたー!!!最後に範囲を変えるとき、どこを変えたらいいですか?
0そうだね
プレイ済み
返信[15]
親投稿
otta777 otta777a
13行目のIF命令でXが32未満かXが200を越えた場合に加算した 移動量を減算して無効にしています。 この数値を変更すると範囲を変えられます。
0そうだね
プレイ済み
返信[16]
親投稿
ボーネン gurigura2003
では上下の範囲は…
0そうだね
プレイ済み
返信[17]
親投稿
otta777 otta777a
横方向の応用ですよ、 変数をX→Y,SX→SYに置き換えたものを追記して下さい。 SYは符号が逆になりますのでそこに注意して下さい IF Y<32 || Y>200 THEN Y=Y+SY
0そうだね
プレイ済み