トピック

そろそろここをなんとかしないと…

「おもいだす」で続きからが出来るように、 「すべてわすれる」で初めから出来るように。 ここもとても難しそうなんですよね… 関係ありませんけど育成ゲーム作れる んですかね?
0そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
続きから始める、というからには、データを保存する必要があります。 なので、まずはデータの保存と読み込みのやり方から勉強しましょう。 一番簡単なのは、保存したいデータを文字列変数にいれておいて SAVE "TXT:ファイル名",文字列変数 とする事です。 これを読み込みする場合、 LOAD "TXT:ファイル名" OUT 文字列変数 とする事で可能です。
1そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
例えば、 DATA$="TEST" SAVE "TXT:DATAFILE",DATA$ とする事で、DATAFILE.TXT が作成され、その中身に TEST という文字列が保存されます。 また、 LOAD "TXT:DATAFILE" OUT DATA$ とする事で、DATA$ に TEST という文字列を読み込む事が出来ます。
1そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
さて、データの読み書きが出来るようになったら、次は「データを読み込む」のか「最初からやる」のかの判断をしないといけません。 これは、カーソルの座標を元に判断すればよいでしょう。 カーソルのY座標が、 「おもいだす」と同じなら「データを読み込んでゲームを始める」 「すべてわすれる」なら、「データを読み込まずにゲームを始める」 とする事で可能です。
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
> 育成ゲーム作れる? よっぽど無茶なものでもなければ可能です。
1そうだね
プレイ済み
返信[5]
親投稿
むしろ機能(カメラとかWi-Fiとか)の制約を除けば何でも作れる。
1そうだね
プレイ済み
返信[6]
親投稿
こんな感じでいいんですよね? (育成ゲームが作れるんですか! これ終わったら作ってみようと思ってた んで作れるなら良かったです! (何ヵ月か先の事ですけどね。)
1そうだね
プレイ済み
返信[7]
親投稿
あれ、それだと初めか続きか判定してないよ?
0そうだね
プレイ済み
返信[8]
親投稿
難しい…
1そうだね
プレイ済み
返信[9]
親投稿
ケイン KEIN.HORGAN
すみません、どこから突っ込んだらいいのか分からないくらいなんですが…… とりあえず、どうしてそういう修正を加えたか、1行ずつ説明してもらえませんか? そうしてもらえれば、自分の説明のどこが悪くて誤解させてしまったか分かると思うので。
1そうだね
プレイ済み
返信[10]
親投稿
カーソルの座標を調べる→LOCATEの下に命令を置く と勘違いしたと推測
0そうだね
プレイ済み
返信[11]
親投稿
ヒント: 何かを調べる(確かめる)ときに使う命令といえば… IF-THEN
1そうだね
プレイ済み
返信[12]
親投稿
やっぱり難しい…
0そうだね
プレイ済み
返信[13]
親投稿
ケイン KEIN.HORGAN
うーん。ただ「難しい」と言われても、どう説明したらいいのか分からないです。 最初にレスしたものより簡単に説明するのは本当に難しいので…… これよりさらに説明をするとなると、フランケンさんが分からないところを言ってくれないとやりようが無いのです。
1そうだね
プレイ済み
返信[14]
親投稿
こういうのそんなにやった事ないから もうよく分からないんですよ。 いじってみましたが…これで 合ってるでしょうか?
0そうだね
プレイ済み
返信[15]
親投稿
ケイン KEIN.HORGAN
あ、ちょっと惜しい感じですね。 IF Y==17 AND A==2 THEN というのは、「もしYが17 で、そしてAが2だったら」という意味になります。 どこが惜しいかというと「Yが17で」というところが正解です。 とりあえずコードを書く位置なのですが…… プレイヤーが「"続きからやる"のか"最初からやる"のか」を決めるんですよね? だとすると、プレイヤーの選択を待ってから判断しないといけません。 でも、この位置(28行目)は、「画面に選択肢を表示した直後」なので、まだプレイヤーが選択をしていません。 つまり、このコードはもっと後ろ、プレイヤーの選択が終わった後に書かないといけません。 具体的には、この画面には表示されていませんが…… えーと、34行目に WHILE TRUE とありますが、確かこのループ内でプレイヤーが選択していたはずなので、このループの後ろですね。
0そうだね
プレイ済み
返信[16]
親投稿
ケイン KEIN.HORGAN
一応説明しておきますが、「Y==17は正しい」というのは…… 「Y には、その直前のループで、カーソルの座標が入っているから」 という事になります。 選択されたカーソルの座標と、17(これって、つまり、「おもいだす」という文字が表示されているY座標の事ですね)を比べて、それが正しいかどうかをチェックしているから「正しい」という事ですね。 ちなみに、A==2 が正しくないのは…… 正しくないから正しくない、というか、なんというか…… これどう説明すればいいんだろ? A==2 とした理由が分からないので説明できない……
0そうだね
プレイ済み
返信[17]
親投稿
とりあえず、ここを変えればいいんですね!
0そうだね
プレイ済み
返信[18]
親投稿
ケイン KEIN.HORGAN
あ、なるほど、フランケンさんの言いたい事が分かりました。 自分は「ループを抜けてから」条件判断をすればいいと思っていたんですが、フランケンさんは「ループを抜けると同時に」条件判断をしたいんですね。 そういう事であれば、さっきの「ループの後ろ」にIF 文を書けばいい、といのは撤回します。 ループの最中にその文を入れて、かつ、A==2 というのを直せばいいです。 そういうつもりで考えると…… A==2 としたのは、もしかして、#A とBUTTON(2) というのをみて、そこから 「よく分からないけどとりあえずやってみよう」という感じでやったんでしょうか? そうだとすると、大分惜しいですね。この場合、正解は BUTTON(2)==#A になると思います。試しにやってみてください。
0そうだね
プレイ済み
返信[19]
親投稿
こうでいいんですか? (今日はもう寝ます、おやすみなさい!)
1そうだね
プレイ済み
返信[20]
親投稿
ケイン KEIN.HORGAN
そうですね、IF文の条件判断式はそれであってると思います。 後はそれをループの中にいれて、IF に一致した時の命令を書けばいいと思います。 ではでは、お疲れ様でした、おやすみなさい。
0そうだね
プレイ済み