えーと、変数には大きくわけて2種類あるのは知ってますか?
A:数値型変数(変数の後ろに何もつかない)
A$:文字列型変数(変数の後ろに$がつく)
この2種類の変数は、直接比較すると見た目とは異なる結果になります。
比較する時は、同じ型同士で比較するようにしてください。
今回の場合、INPUT で指定する変数を文字列型にする必要はないと思いますので、A$ではなく、数値型変数を指定するといいと思います。
1そうだね プレイ済み
なるほど。えーと、今はキャラクターを表示した画面が出来ていますが、操作はどのくらい出来ているのですか?
それとも、動かす事も出来てないですか?
0そうだね プレイ済み
マリオ風というのは、絵柄の事? それとも、操作の事?
0そうだね プレイ済み
惜しい。
文字列A + 文字列B
という命令をすると、その結果は、「文字列A文字列B」となります。
(文字列Aに文字列Bが加えられて、新しい文字列が出来る。このとき、"+"は出てこない)
そして、STR$(A)というのは、数値変数Aを文字列とする関数です。
(例えば、Aに数値として123 が入っていた場合、文字列の123 になります)
STR$(A)+STR$(B) というのは、つまり数値変数のAとBをそれぞれ文字列にして、それを一つの文字列にする、という意味です。
これに"+"の文字を付け加えたいなら、"+"自体も文字列として加えないといけません。
つまり、STR$(A)+"+"+STR$(B) とする必要があります。
慣れないと難しいとは思いますので、何か分からない事があったら、また聞いてください。
2そうだね プレイ済み
クリア出来ました!
なんか宇宙人かわいそう、というか主人公が好戦的すぎた!?
0そうだね プレイ済み
評価は非常に難しいので、簡単なレビューを。
プチコン3号は、3DS に簡単な命令が出来るソフトです。例えば、
・画面をきれいにする
・画面に文字を表示する
・イラストを指定した位置に表示する
・ボタンが押されているかを調べる
・ボタンが押されていたら、任意の命令を実行する
などです。
こういう簡単な命令を数多く組み合わせる事で、ゲームやお絵かきソフト、計算機など様々なソフトを作る事が出来ます。
また、作ったソフトはネット上にアップロードする事が可能で、他人にダウンロードして使ってもらう事も出来ます。
(逆に、他人が作ったソフトをダウンロードして使う事も出来ます)
プチコン3号が発売されてから結構たちますが、大作ソフトは非常に時間がかかります。
その為、現在ダウンロード出来る物の大半は小粒なソフトですが、それらのソフトをダウンロードして遊ぶだけでも十分楽しめるとは思います。
1そうだね プレイ済み
ですね、それで「タイトル画面を表示して、Aボタンを押すまで待機」というプログラムになっていると思います。
そして睡眠は大事なので、お気になさらずにー
おやすみなさい。
0そうだね プレイ済み
> フランケンさん
多分、今回の修正で
「タイトル画面を表示して、Aボタンを押すまでプログラムが終了しない」
というところまでは進んだと思います。
この後は、「画面を一度消去して、メニュー画面を出す」という流れになると思うのですが、それよりも先に、タイトル画面には不要なテスト文を削除しておいてはいかがでしょうか?
具体的に不要な命令文は、12行目~26行目なので、これをごっそり削除してしまう、ということです。
0そうだね プレイ済み
> otta777 さん
これ、以前の話では「タイトル画面を表示して、Aボタンを押したら先に進むにはどうしたらいいですか」というような流れだったと思います。
フランケンさんとしては、「一定時間が経ったら先に進んでいる今の状況」をどうにかしたくて今回のトピックを立てたのだと思うので、多分「タイトルの次の動作」はまだ考えてない、んじゃないかなぁ、と思います。
(まあ、自分の勝手な想像ではあるんですが)
0そうだね プレイ済み
外側に出る……
なるほど、ちょっとその方針で頑張ってみますー
ありがとうございます!
0そうだね プレイ済み
あ、それは分かったんです(分かった、というかカンニングした、というか、解析した、というか)
でも、出来ない!
気づいたら囲まれてる(泣
(ここしばらくシューティングとかしてなかったけど、今思い返してみれば、自分は攻略動画ないとシューティングクリア出来ない人だった)
0そうだね プレイ済み
外から参考になるかも、と思って見てる人の為の補足
※ 12行目~23行目は、IF 文の説明。
(IF 文を使えば、条件により処理を変更出来る)
※ 24行目以降は、WHILE ~ WEND を使ったループの説明
(通常、プログラムは上から下に一方通行で進みますが、ループを使えば、下から上に戻ってまた繰り返す事が出来ます)
0そうだね プレイ済み
ああ…… えーと、ちょっと記憶にあるんですが、多分、それ自分が例題として挙げたコードをそのまんま組み込んでしまっている模様。
以前に説明したかったのは、
「"ボタンを押すまで待機するには、ループを作成して、その中でボタンが押されたらループを抜ける"ようにすればいい」
という事だったのですが……
うーん、自分の説明が下手だったのか。
いつまでも先に進まないのもあれでしょうし、実際のコードを示しますね。
WHILE TRUE
IF BUTTON()==#A THEN BREAK
WEND
としてみてください
0そうだね プレイ済み
クリアしました!
true end が気になったけど、10回くらいクリアしても何にも起きなかったのでカンニングしてしまいました(クリア条件のところ)
で、条件はわかったにも関わらず未だにtrue end に行けない……
どういうことだ(汗
0そうだね プレイ済み
BREAK 命令の使い方が間違っていますねー
BREAK 命令は、「ループを抜ける」為に使用するもので、ループの外では使えません。
(「ループ」とは、命令を繰り返すことです。今回の画像でいえば、WHILE ~ WEND の間にある命令が繰り返されます)
0そうだね プレイ済み
ボタンが押されているかどうかを調べるのは、BUTTON() 関数です。
BUTTON() 関数を実行すると、何かボタンが押されているか、押されていたらそのボタンに対応する数値が返ってきます。
Aボタンが押されていた場合、返ってくる数値は #A となります。
ちなみに、ループを終了する命令は"BREAK" 命令です。
つまり、以下の命令でループ終了チェックを行う事が出来ます。
IF BUTTON()==#A THEN BREAK
ここまでやれば「始める」が完成すると思いますが、分からない事があったらまた聞いてください
0そうだね プレイ済み
さて、長くなりましたが、そろそろ完成です。
プチコンには、「ボタンが押されているか押されていないかをチェックする」命令は準備されているので、大体次の流れで、「タイトル画面を表示して、ボタンが押されたら次に進む」を実装する事が出来ます。
- プログラムの流れ ------
タイトル画面を表示する
ループ開始
もしボタンがA押されていたら、ループを終了する
ループの最初に戻る
-------------------------
0そうだね プレイ済み
Xの値により、実行される命令が変化したでしょうか?
これがIF文といい、プログラムの中でもかなり重要な命令になります。
さて、次はループ命令です。これは、同じ動作を繰り返したい時に使う命令です。
ループ命令にはいくつか種類があるのですが、今回はWHILE ~ WEND 命令を使ってみましょう。
試しに以下の文を実行してみてください
X=0
WHILE X<10
X=X+1
PRINT X
WEND
さて、結果をみてもらえれば分かるかと思いますが、WHILE ~ WEND 命令は、WHILE の直後に書いた条件を満たす限り、その間にある命令を繰り返す命令です。
条件を満たす、とは、式の結果が0 以外になる事です。
また、「条件を書く以外に、直接 1 の値を指定する」と、無限ループを発生させる事が出来ます。
0そうだね プレイ済み