トピック
ゆうき hanabusa0106

A=A+1←について

A=A+1のように、Aの値を増やすとき、増えるスピードを遅くすることはできますか??その方法もあったらおしえてください。お願いします!
0そうだね
プレイ済み
返信[1]
親投稿
STiNGER STiNGER8901
IF !(MAINCNT MOD n ) THEN A=A+1 n/60秒間隔でAが1ずつ増えます。
0そうだね
プレイ済み
返信[2]
親投稿
STiNGER STiNGER8901
あ、nは任意の数値を入れるところですね。60なら1秒、180なら3秒。10なら1/6秒間隔になります。
0そうだね
プレイ済み
返信[3]
親投稿
STiNGER STiNGER8901
あと、ループにVSYNCを入れ忘れるとエライ事になります(笑)
0そうだね
プレイ済み
返信[4]
親投稿
@LOOP A=A+0.5 B=FOOR(A) ?B GOTO @LOOP
0そうだね
プレイ済み
返信[5]
親投稿
みむ*mim hidemimtp
STiNGERさんのやり方でも大抵は大丈夫ですが、最初の+1がいつされるか分からないのと、1ループが1フレーム以上かかってしまうと加算が空振りする事があります。 オワたずさんのが一般的だと思います。ただこれだと表示だけ整数にする感じなので、変数Aを整数でゆっくり加算したいのであれば、 B=B+0.1 A=FLOOR(B) もしくは2行目を、 A=B DIV 1 もしくは、 A%=B まぁそもそも整数じゃなきゃダメとは書いていないので、 A=A+0.1 でいいじゃんというのはありますが。 用途が分かりませんが、SPOFSの座標に小数を渡してもエラーにはなりません。
1そうだね
プレイ済み
返信[6]
親投稿
投稿の内容とずれた回答をしてしまったので消しました。申し訳ありません。
0そうだね
プレイ済み
返信[7]
親投稿
SilverBlue Corei72630QM
INC A,1 これで0.02秒くらい遅くなるよ(棒)
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
A=A+0.1などのように小数値を指定すれば簡単です。整数で表示したければ表示の際に整数値に変換表示すれば良いだけです。 ただし、小数計算には誤差が出るため思わぬ誤動作をしてしまう場合があります。 小数計算の誤差による誤動作の仕組みや解決方法は下記のトピックスで書いています。 https://miiverse.nintendo.net/posts/AYIHAAAEAAASVZKdAWi67g 上記トピックスに記載の方法以外のものとしては、増加速度の微調整が難しくなりますが、加算する値を2のべき乗分の1(1/2、1/4、1/8、1/16等)にすることで誤差の発生を回避することも可能です。
0そうだね
プレイ済み
返信[9]
親投稿
ゆうき hanabusa0106
みなさんありがとうございます。これから色々な方法を試していこうと思います!
0そうだね
プレイ済み