トピック
HMF gunsofthemy

いろいろ質問したいので・・・

いろいろ質問したいので・・・トピック開きました。誰でもいいから教えて下さいお願いします。
2そうだね
プレイ済み
返信[1]
親投稿
HMF gunsofthemy
まず、この写真見て。変数SDをスライドパッド入力があったら特定の数だけ変えるようにしたいんだけど、ここでCLS使ったらチカチカするし、何故かスライドパッド入力をしている時は暗くなる。どうしたらいいですか?
0そうだね
プレイ済み
返信[2]
親投稿
bはかせ kojimadaiti
多分XSCREENはループの中に入れず 一回使うだけで大丈夫だと思います。 確かXSCREENは他の命令より処理速度が 遅かったかな、という風に記憶してるので ループの中に入れると 遅くなるかもしれません。 あくまでも多分ですけど。
1そうだね
プレイ済み
返信[3]
親投稿
MIKI ifconfig
xscreen を外に出すのはボルガはかせさんの言うとおり。 186行目 while の中から goto でどこか飛ぶのは異常です。 そもそもここが while ループである必要があるのか???
1そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
ボルガはかせさんの指摘以外の部分でも気になる点がありますね。 まずラベル@A_Bってどこにありますか? スライドパッドの入力が無い場合にWHILE~WENDの外の@A_Bに GOTO命令で飛び出しているように見えます。 またスライドパッドの入力があった場合にBREAKでWENDの後に 処理が移りますがその部分はどうなっていますか? ちかちかして見える理由はCLSを行った直後にWAIT 3があるためだと 思います。
1そうだね
プレイ済み
返信[5]
親投稿
CLSとWAITを入れ替えるとか、空白で一回上書きをするとかをした上で XSCREEN命令を外にした方がいいかと ボルガはかせさんも言ってますが、処理速度が遅かったからかと あと多分ACLSとかも遅かったような… 気のせいだったらすみません><
1そうだね
プレイ済み
返信[6]
親投稿
HMF gunsofthemy
ボルガはかせ さんの言う通りにしたらチカチカしなくなりました。あと、@A_Bは写真にある図を外部からアクセスする時に使います。GOTO @A_Bになった理由は・・・変数SDを表示させるプログラムを外部に反映したから・・・です。
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
まずCLSをしてしまうとせっかくその前のPRINT命令で表示した図が 消えてしまって毎回表示することになってしまいます。 処理も増えるのでスライドパッドの入力が有った時のCLSは削除しましょう。 SDを表示するときに桁数が変わると文字が残ってしまう場合があるので FORMAT$関数を使って桁あわせをすればGOTO @A_Bを削除しても その前に表示した図は崩れないと思います。 PRINT SD→ PRINT FORMAT$("%4D",SD)
1そうだね
プレイ済み
返信[8]
親投稿
みむ*mim hidemimtp
まだプログラミングを始めて間もないとお見受けしますが、とりあえず最初のうちは、XSCREENはプログラムの冒頭付近に1回だけ書くのが普通だと思っておいていいと思います。プログラム中に何度も実行するような使い方はしません。 それと、@A_Bの下の画面を表示する20行程度は、一度書けばいい部分なので、もし他からも呼び出すのであれば、WHILE~WENDより後に書いておいて、WHILEの前で「GOSUB @A_B」とするのがいいと思います。「サブルーチン」ってやつです。 で、GOSUBなのでどこが終わりか印をつけないといけないので、「LOCATE 1,18:~」の次の行に「RETURN」と書いておきます。 そうすると、「GOSUB @A_B」から画面描写のサブルーチンに飛び、画面を描写したあと「RETURN」で処理が元の行に返ってきます。そしてWHILEループが始まる、という流れです。
1そうだね
プレイ済み
返信[9]
親投稿
FORやWHILEの中でGOTOは出来るだけ避けた方がいいですね。まあ2重以上のFORをGOTOで抜けるというのは例外的に許されている面もあるんで一概には言えませんが、根拠が無い場合は避けておくのが無難です。 まだ今回の場合、GOTOじゃなくてGOSUBを使うやり方(みむ*mimさんのコメント通り)が適していると思いますが、なんとなくまだ説明を読んでも混乱しちゃうのかなぁ?という気もしてます。 175〜192のPRINT群をWHILE 1の下の行に追加しちゃってもいいかもしれませんね。毎回PRINTされることにはなりますが、WENDの前にVSYNCをいれてIFのCLS以降(CLSも含む)を消せば、おそらく問題ないんじゃないかと思います。
1そうだね
プレイ済み
返信[10]
親投稿
HMF gunsofthemy
2つ目の質問です。変数に変数って入りますか? また、入らない場合はどうしたらいいですか?? (これを実行した場合おかしくなります) 因みに今やりたいのは、 変数a→変数b→変数a ってやつです。 また、変数bには他の変数cやらdやらが入り、IFによって変数bがどの変数に入るかを操作しています。
0そうだね
プレイ済み
返信[11]
親投稿
みむ*mim hidemimtp
うーん、何かご自身で考えてこんがらがってどうしようもなくなって、その泥沼を解決しようとしている感がありますね。問題はもっと前の段階にある気がします。 自分で考えるのはすばらしい事ですが、この場合は大抵こうしたらいいよ、という王道はあるので、もうちょっと「何をしようとしているのか」の所から説明があるといいかも。 とりあえず、こういう似たような処理が並ぶ場合、「GOTOで戻る」というのは基本的にありません。やるなら「GOSUB~RETURN」です。 変数の値によって飛ぶ命令もIFやCALLを使うなど色々ありますが、 ON A GOSUB @A_0 , @A_1 @A_2・・・・ とか。 変数の中に変数は入りませんが、 AL=3:FPS=AL なら、FPSはちゃんと3になりますよ。
1そうだね
プレイ済み
返信[12]
親投稿
変数は値が入る箱のようなイメージです。なので箱の中身(数字や文字)は他の箱に移す(正確にはコピーになるけど)事が出来ますが、箱の中に箱を入れるような事は出来ません。(裏技的にやる方法があったとしても普段は使いません) 見た感じ、みむさんも言われているように初心者にはありがちですがスパゲティなソースコードになりそうな印象がありますね。また変数の中に変数という話が出ていることからも理解が中途半端なのかな? とも思います。 どんどん先に進むのもいいですが、一度立ち戻って、今のプログラムを見直して、プログラムの流れに問題がないかなどを確認(や指導を受けてみる)してみるのもいいんじゃないかと思います。
2そうだね
プレイ済み
返信[13]
親投稿
すごくとても冗長なプログラムだ…
0そうだね
プレイ済み
返信[14]
親投稿
HMF gunsofthemy
最近暇がなくて、作りたいプログラムにも手がつけられません。ってことで自作のミニゲームの詰め合わせを作っている(クオリティは察っして下さい)のですが、あんましアイデアがありません。なので誰かアイデア下さい。 因みに今作っているのは反射神経テストとあっちむいてほいです。あとじゃんけんとかもいれるつもりです。
0そうだね
プレイ済み
返信[15]
親投稿
HMF gunsofthemy
別のトピ立てます。
0そうだね
プレイ済み