プレイ日記
ポケラー! pokokanappe
下画面にキーをおきプレイヤーに名前を決めさせたいのですが、どうしたらそのようになるでしょうか?
2そうだね
プレイ済み
返信[1]
親投稿
ぴくと kanau1203
INPUTとINKEYはベツモノです あと連投はこのコミュだと印象よくない
0そうだね
プレイ済み
返信[2]
親投稿
TERA(LL) tera0413
それ(連投)な、以前から思ってましたが「プレイ日記」なので、「いま自分はこのゲームでこんなプレイをしてますよ」的な事を、日記的に記録してるだけなので本来は自由なはずですが、同時にその日記をさらしてコミュニケーションする場なんで、他の人から見ると「連投してる」に見えてしまう・・・ (過疎ってるところなら歓迎かもしれないですが・・・) 前回突っ込み忘れ I name is
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
103行目のINPUT命令で既に実装できていると思うのですがそれでは 不十分と言うことですか? ぴくとさんがおっしゃっているのは質問をする度に新規投稿をすると同じ 話題のトピックが分散してしまうので最初に質問したトピックのレスに 追加の質問をした方がいいよって事だと思います。
1そうだね
プレイ済み
返信[4]
親投稿
ポケラー! pokokanappe
ありがとうございます! これでできれようになったのですが次は一文字以上入力しなければ次にいけないようにしたいのです。 写真では名前なしで次にいってしまいます…、良い命令があれば教えてください。
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
IF命令で条件分岐をしてINPUT命令で入力した文字変数の中身が 空っぽだった場合にINPUT命令に戻るプログラムを追加すると 良いかと思います。 @NAMEIN LOCATE 0,26:INPUT (以下省略) IF NM$=="" THEN GOTO @NAMEIN LOCATE命令を使ってINPUT命令でガイド文字を表示する座標を 指定するようにすると繰り返し名前を入力するときに画面が スクロールしなくなります。
0そうだね
プレイ済み
返信[6]
親投稿
ポケラー! pokokanappe
なおしてみました、するとINPUTの行にエラーがおきました。 ちゃんと実行はしれるのですが名前を決めたあとにエラーが表示されました、どこがおかしいのでしょうか?
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
こちらではINPUT命令でエラーは発生しませんでした。エラーが発生した 場合はどんなエラーが出たか書いて頂けると解決の近道になります。 このプログラムだと名前を入力した場合にREPEAT~UNTIL 0を 繰り返すためプログラムが先に進まなくなります。 こういう場合を無限ループと言います。今回の場合はREPEATとUNTIL 0は 不要だと思いますよ。
0そうだね
プレイ済み
返信[8]
親投稿
ポケラー! pokokanappe
一旦フリーズしたあとにこうなってしまいます
0そうだね
プレイ済み
返信[9]
親投稿
TERA(LL) tera0413
せっかくREPEAT UNTIL使ってるのに、条件式を内部に入れてわざわざ無限ループにしてる件について。
0そうだね
プレイ済み
返信[10]
親投稿
otta777 otta777a
Break on ~というのはキー操作によってプログラムの実行を 中断したときに表示されます。~行目を実行中にプログラムを 中断しましたっていうメッセージでエラーとは違います。 一旦フリーズしたとありますがその時にSTARTまたはSELECTボタンを 押したかソフトウエアキーボードのSTOPキーをタッチしていませんか? フリーズは前述の無限ループが原因です。
0そうだね
プレイ済み
返信[11]
親投稿
ポケラー! pokokanappe
ありがとうございます!
0そうだね
プレイ済み
返信[12]
親投稿
ポケラー! pokokanappe
次に下画面を表示させ、BGをたっちしたら次に進むようにしたいです、下画面表示はわかるのでタッチされると次にいく命令を教えてください。
0そうだね
プレイ済み
返信[13]
親投稿
ツララ LongIceSword
タッチされたかどうかを判別するなら、そのものずばりTOUCH命令というものがありますよ。 書式は TOUCH [端末ID] OUT TT,TX,TY で、TTはタッチ継続中の時間、TX,TYはタッチされているXY座標ですね。 タッチされたかどうかだけの判定なら、TTで取得した変数をIF文の条件式に入れればOKかと。 Mr.Fingersさんの投稿見てふと思って INKEY$()関数でタッチしっぱなしでも連続入力されない処理作ろうと思って色々やってみたんですけど、TOUCH命令使わないと無理っぽい。
1そうだね
プレイ済み
返信[14]
親投稿
107行目、抜け出しGOTOはやめた方がいい(対策が無ければスタックが溜まる) ループ構文の抜け出しにはBREAKをお使いください
1そうだね
プレイ済み
返信[15]
親投稿
ポケラー! pokokanappe
ここでセーブ機能をつけたいのですが、本をみてもヘルプをみてもわかりません!一発で全てセーブすることは無理なのでしょうか?
1そうだね
プレイ済み
返信[16]
親投稿
配列いれよーぜが来たか
0そうだね
プレイ済み
返信[17]
親投稿
ツララ LongIceSword
セーブ関連はMIKIさんが便利な命令を作って公開されているので 別に仕組みを理解したいとかじゃなければそれを使わせてもらった方がいいかと。 ユーザー検索にコミュニティ単位とかの範囲検索機能が有ればいいのに・・・
0そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
複数の変数をまとめてセーブする場合には「数値で統一して配列に入れてセーブ」「文字列に統一して連結してセーブ」の2つの選択肢があります。 個人的には後者を薦めたいところですが、数値が小数の場合は文字列化すると値が丸められて変わってしまうという問題点があります。 それを克服するために私が作ったのが誤差ゼロで数値を文字列に変換するPSTR$です。 https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTp-ZVMIg
0そうだね
プレイ済み
返信[19]
親投稿
おちゃめ ochame_nako
文字列の結合、分離というのは初心者には難しいのでMIKIさんが作ったのがVFILERです。 https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTtQa5Q3Q このVFILERの文字列化にはPSTR$が使われているので小数の値であっても何ら問題がありません。 これを使えばセーブやロードを行う変数名を羅列するだけで一括セーブ、ロードが可能です。 ちなみに「MIKI VFILER」でネット検索すると上記URLが一発で見つかります。 自サイトのプチコン3号入門講座でもVFILERの紹介を行っています。
0そうだね
プレイ済み
返信[20]
親投稿
おちゃめ ochame_nako
というわけで、一括セーブやロードをお手軽に実装したいならばMIKIさんのVFILERがオススメ、分離や結合の方法を自分で作ってみたいならば私のPSTR$がオススメ(PSTR$にはセーブしやすいように文字数固定オプションがついているため初心者でも安心)、すべて自分で作ってみたいならば「数値で統一して配列に入れてセーブ」「文字列に統一して連結してセーブ」をヒントに自力で作ってみましょう。
0そうだね
プレイ済み