トピック
SoulBlack grape90

エラー

キャラを端まで動かしたらout.langed locate 1というエラーエラーが出ました。どうしたら解決しますか?
0そうだね
プレイ済み
返信[1]
親投稿
値を範囲内に収めます
3そうだね
プレイ済み
返信[2]
親投稿
SoulBlack grape90
すみません、エラーエラーじゃなくてエラーでした。
0そうだね
プレイ済み
返信[3]
親投稿
だにえる haru2016nen
コンソール画面の範囲は、(上画面) X=0~49 Y=0~29 となっています。 LOCATEのX,Yの引数どちらか1方でも 範囲外になればエラーになります。 IF文を使って範囲内にするのがベターかと。
2そうだね
プレイ済み
返信[4]
親投稿
ツララ LongIceSword
LOCATE命令のヘルプを見ると、WIDTH命令で文字の大きさを変えた時の場合も含めて引数の有効範囲が書いてありますね。 LOCATE命令を実行する前に、範囲外の数値になっているかどうかをチェックして、もし範囲外なら有効範囲内に収める処理を書き足してやればエラーは回避できるはず。 具体的には IF PX>49 THEN PX=49 IF PX<0 THEN PX=0 みたいな感じで。 でもこのプログラムで移動の処理の前に、Y軸方向だけ別途に空白で上書きしてるのは何か意図があるんです?
2そうだね
プレイ済み
返信[5]
親投稿
SoulBlack grape90
いや、初心者講座をマネて作ったので、そこは分かんないんです。
0そうだね
プレイ済み
返信[6]
親投稿
SoulBlack grape90
こんな感じでしょうか?
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
プレイヤーについてはその追加したIF命令で画面外に移動しなく なるので解決しました。 ショットの部分のプログラムにミサイルのX座標が3未満だったら MST(ショット発射中プラグ)を0にするとありますがこれは SoulBlackさんの想定通りですか? これだと以前のプログラムのプレイヤーと同じように画面の 右端までショットが移動してエラーになってしまうので46行目の IF MX<3 THEN~の条件式を変更してショットが画面の右端まで 到達したときにMSTを0にする必要がありますね。
0そうだね
プレイ済み
返信[8]
親投稿
SoulBlack grape90
下で打つと下へスクロールしてしまいます。どうすればいいですか?
0そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
プレイヤーの表示する部分とショットの表示する部分をよく見比べて下さい。 PRINT命令は表示する内容の後に;(セミコロン)を付けると改行を しませんがセミコロンを付けないと改行します。 一番下の行でセミコロンを付けないとコンソール画面がスクロールして 一つ前のコメントのような現象が起きます。 必要な所にセミコロンを追加しましょう。
0そうだね
プレイ済み
返信[10]
親投稿
SoulBlack grape90
直りました!
1そうだね
プレイ済み
返信[11]
親投稿
SoulBlack grape90
と、思ったらなんか97行どんなに順番を入れ替えてもout of langedのエラーを吐く。どうすればいいですか?
0そうだね
プレイ済み
返信[12]
親投稿
SoulBlack grape90
すみません、自己解決しました!
1そうだね
プレイ済み