投稿
☆kei☆ keiugo0216
格ゲー作ってるんですけど 体力が減ってHP:10からHP:9になるときに何故かHP:10からHP:19になってしまいます…内部的には9として処理されている様なのですが…
0そうだね
プレイ済み
返信[1]
親投稿
スー thanks_0u0
予想になってしまいますが、内部的に間違いなく9になっているなら、きっとPRINTのときに前の表示が残っているのだと思います。 毎回HP表示エリアをスペース文字で上書きするか、FORMAT$などで桁数を指定すれば直るかもしれません♪( ´▽`)
1そうだね
プレイ済み
返信[2]
親投稿
☆kei☆ keiugo0216
分かりやすい解説ありがとうございます!
0そうだね
プレイ済み
返信[3]
親投稿
イーブン rein-2000
ぼくも始めたばっかりは同じ事で、 「あれ…?おかしいなぁ…CLSしてからPRINTしたらちゃんと9になるのに…」答えを自分で言いつつも なかなか気付きませんでした(笑)
0そうだね
プレイ済み
返信[4]
親投稿
シュナ S_S_Schneider
今でこそ FORMAT$ という 便利な命令がありますが 以前のプチコンで 数値を右揃えで表示させたいとき 以下の処理でやってました…… NSPACE$=" " IF NUMBER >= 10 THEN NSPACE$=" " IF NUMBER >= 100 THEN NSPACE$=" " IF NUMBER >= 1000 THEN NSPACE$="" PRINT NSPACE$+STR$(NUMBER) ……ね? 大変でしょ?
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
最も簡単な解決方法は最後に「,」を付けることです。 例 PRINT HP ならば PRINT HP, とする。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめさんの方法だとカンマで入るタブスペースがうまく後ろの文字を消してくれるみたいですね(ですよね?) シュナさんのやり方ですが、もうちょっとだけ楽にする方法はありますよ。右揃えなら、 PRINT RIGHT$(" "+STR$(NUMBER),4) って書く方法もあります。 ただどちらにしてもプチコンにはFORMAT$があるのでそれを使った方が便利で応用も利きますよね。とくに決まったスペース内にきちっと文字を収めたいときはFORMAT$を使うのがベストじゃないかと思います。(文字列の右詰はマイナスを指定すれば可能です)
0そうだね
プレイ済み
返信[7]
親投稿
シュナ S_S_Schneider
( ・д・) < RIGHT$ の存在 すっかり忘れてたぜ! (ワンパク君風な口調で) とはいえ どんなプログラム言語でも 文字列操作は重要だったりしますので ちゃんと覚えておかねば……
0そうだね
プレイ済み