トピック
あまもち Ragnars

FOR~NEXTでうまくループされない

FOR I=0 TO 2 STEP 1 「」 NEXT こう書けば「」の処理をするごとに1カウントされ、2になると終了する…というつもりなのですが、上手いこと動いてくれません。 どこがおかしい…んでしょうね。 ぶっちゃけ『I=0』の部分がよく分からないのですがそれが原因だったりしますか? 初期数?を代入してどうすんだって印象です。
2そうだね
プレイ済み
返信[1]
親投稿
あまもち Ragnars
初期数じゃなくて初期値だった…。 これ出来ても同時に他の処理できないんじゃ方法変えるしかないのかな。 現実→その時実行する処理をそれぞれ一つずつ書く。 理想→別々に書いた処理を同時に実行。 あれ、MMLで例えると現実が一行で書くのに対し、理想がDATAで別々の行に書く感じ…あれ?DATAも立派な配列?
0そうだね
プレイ済み
返信[2]
親投稿
FOR I=0 TO 2 STEP 1 ならIが0から始まって2まで繰り返すので実際には、0,1,2で3回繰り返すことになりますね。ちなみにSTEPが1なら省略できるので省略することが多いです。
1そうだね
プレイ済み
返信[3]
親投稿
あまもち Ragnars
『現実』 BGMPLAY ":0C:1E:2G :0D:1F:2A :0E:1G:2B" 『理想』 @AAA (略) DATA ":0{A}" DATA ":1{B}" DATA ":2{C}" BGMSETD 128 @AAA BGMPLAY 128 こんな感じで!{A}{B}{C}が同時に演奏するように、処理が出来たらいいなって! (分かりにくい例え)
0そうだね
プレイ済み
返信[4]
親投稿
あまもち Ragnars
どうもFOR~NEXTではなく、SPFANCが正しく機能してないみたい。 SPFANCとラベル先の処理の書き方が合ってないのかもしれない? だってそのまま書いただけだから、ラベルのみ認識されてる状態なのかな? かといってDATAでかこってもみたけどエラーが出ちゃうんだな。 SPFANC 管理番号,@ラベル と書く辺り、ラベル先は管理番号を指定しない動作のみという意味なのだろうか。 それはそれで意味が分からんがこれがコールバック処理というやつ?
0そうだね
プレイ済み
返信[5]
親投稿
あまもち Ragnars
あ、あとでんぺんさんいつも助言をありがとうございます。 ふむふむ→試してみるに繋がるのですごい助かってます…!
0そうだね
プレイ済み
返信[6]
親投稿
MIKI ifconfig
>「」の処理をするごとに1カウントされ、2になると終了する 認識あってます。 「? i」 とすれば分かるでしょう。 spfunc は 「call sprite 命令で実行される処理を割り当てる命令」 なので、call sprite しない限りは百万回実行しても何も起きないのです。
1そうだね
プレイ済み
返信[7]
親投稿
SPFUNCは慣れないと難しいかもです。アップデート前はない命令でしたしねー…。 サンプル載せてみます。これが難解で理解不能だとしたら、いったん忘れて他の基礎を覚えた方がいいかも? とりあえず見てみてくださいな。
1そうだね
プレイ済み
返信[8]
親投稿
いえいえー。始めは大変だと思いますが、プログラムはトライ&エラーで覚えていくところもあるんで、色んなサンプルを動かしてみたり、自分でも組んでみたりして試しながら覚えていってください!
0そうだね
プレイ済み
返信[9]
親投稿
Hanzo rzsense
正確に言えば「Iが2になると終了」ではなく「Iが3になったら、処理を実行せずに終了」です。NEXTの直後で「?I」とやってみるとわかります。 もし、NEXTの直後でIが3未満なら、BREAKなどでFORループを途中で離脱したことを意味します。
3そうだね
プレイ済み