プレイ日記
ごごちー gogochii
[質問です]5つ用意したスプライトを画面を通り抜けるように左から右へさせループさせているのですが 出現するスプライトの管理番号を順番ではなくランダムにすると、ひとつが出現しているタイミングで同じ管理番号を選出してしまい移動の途中で瞬間移動してしまいます 画面上を通り抜けている間はその管理番号のスプライトを選出しないようにするにはどうすればいいでしょうか
4そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
687行目でDX[I]が0以上350以下の場合にDAP[SP[I]]を 1にして、そうでない場合は0としたい様ですがその記述だと 上手くいかないんですよ。 IF 350>=DX[I] && DX[I]>=0 THEN ~というように比較条件を それぞれ記述して&&演算子で両方が成立した場合にTHEN以降を 実行するようにして下さい。
2そうだね
プレイ済み
返信[2]
親投稿
ごごちー gogochii
ご説明ありがとうございます! おっしゃられた条件でやってみたいと思います!
1そうだね
プレイ済み
返信[3]
親投稿
ごごちー gogochii
言われた条件にしてみたのですがやはり瞬間移動してしまいます>< さらに気がついたのですが一定時間立つと何かが無限ループしてるみたいにスプライトの動きがとまり、操作を受け付けなくなります(涙)
0そうだね
プレイ済み
返信[4]
親投稿
ごごちー gogochii
試した回数は少ないのですが瞬間移動はお陰さまでなくなったと思います! スプライトが止まるタイミングなのですが、25こスプライトが左から右に流れると止まるみたいです 25と言うのは用意しているスプライトの数で、画面上に流れる最大数を5こにしているのですが... 無限にスプライト流し続けることができてないのでしょうか...?
0そうだね
プレイ済み
返信[5]
親投稿
ごごちー gogochii
用意したスプライトです
0そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
688行目の条件を良く確認して下さい。同時に2つの条件が 成立することは無いのでこの場合はどちらかが成立した場合に THEN以降を実行するようにして下さい。 &&演算子を||演算子に置き換えましょう。 ところで表示位置の指定をするSPOFSの部分はどうなっていますか? 683行目のSPCOLORでのスプライト管理番号の指定方法を 見て気が付きましたがSPOFSのスプライト管理番号指定もこれと 同じようになっていませんか? あと678行目のREPEATの前に DAP[SP[I]]=0を入れておかないと右端まで移動したスプライトの 出現中フラグが1のまま残ってしまいませんか?
1そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
スプライトを25個表示すると止まってしまうのは配列変数DAPが すべて1になってしまうため画面に全て表示中となってしまってる のが原因です。DAP[SP[I]]=0をREPEATの後に追加して下さい。
0そうだね
プレイ済み
返信[8]
親投稿
ごごちー gogochii
なるほど...詳しい説明ありがとうございます! すみません、DAP[SP[I]]=0の位置なのですがREPEATの後にかくのでしょうか?
0そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
678行目のREPEATの前です。REPEAT~UNTILの間でSP[I]の値を 変更しているのでその前にDAP[SP[I]]を0にします。
0そうだね
プレイ済み
返信[10]
親投稿
ごごちー gogochii
できましたぁ! ありがとうございます!!
1そうだね
プレイ済み