トピック

SPの移動速度をBボタンを押している間だけリアルに減速させるには?

SPをBボタンを押している間だけリアルに減速させたくて、画像のようなプログラムを組んだのですが、上手くいきません。どうすれば良いのでしょうか?
1そうだね
プレイ済み
返信[1]
親投稿
補足:減速する割合が二次関数のようになる減速の仕方です。
0そうだね
プレイ済み
返信[2]
親投稿
Z=速度 X=座標 でOK?
1そうだね
プレイ済み
返信[3]
親投稿
みむ*mim hidemimtp
えらくややこしい事をされていますが、29~34行目を消して、 X=X-Z IF B==#B THEN Z=Z-0.01 にすればそれっぽく動くんじゃないかな?(未確認です) 0.01はいい感じになるように調整するのと、 これだと停止したあとに反対側に動き出すのでご注意を。
1そうだね
プレイ済み
返信[4]
親投稿
それね。 「減速」ってゅぅのゎ。。 「速度」が「減る」の。。 もぅマヂ無理。。 逝っとけダイヤ発動しょ。。
0そうだね
プレイ済み
返信[5]
親投稿
ありがとうございます。みむさんの方法を試してみます。
1そうだね
プレイ済み
返信[6]
親投稿
組んでみたのですが、画像のようにすると、どうしてもマイナスまで下がってしまいました。何か良い方法はありませんか?
1そうだね
プレイ済み
返信[7]
親投稿
オーバーランしたときに戻るから、バックを許容しなきゃいけないとなると大変なんだよね。 ブレーキ指令のとき符号が逆転したならば0を代入  マスコンを変数に入れて加速は+、惰性は0、ブレーキは-と仮定 ループの頭にOS=Sを置く (ここで加減速をして) IF マスコン<0 && SGN(S)-SGN(OS) THEN S=0
0そうだね
プレイ済み
返信[8]
親投稿
変数OSの0は「OLD」(古い)という意味ね
0そうだね
プレイ済み
返信[9]
親投稿
ありがとうございます。試してみます。
0そうだね
プレイ済み
返信[10]
親投稿
みむ*mim hidemimtp
S=S-0.01 の部分を S=MAX(0,S-0.01) にするとか?
0そうだね
プレイ済み
返信[11]
親投稿
それだとバックできない(符号だけ別の変数に入れる方法もあるけど) もっとも、前進専用なら最もお手軽な方法なんだよね。
0そうだね
プレイ済み
返信[12]
親投稿
ありがとうございました、上手くいったのでコメントを締め切らせてもらいます。 多分、バックさせる必要が出てくると思うのであまさと しおんさんの方法を使わせてもらいますが、バックの必要が無いようならば、みむさんの方法を使わせてもらいます。
1そうだね
プレイ済み
返信[13]
親投稿
なんか、あーだこーだしてたら、これで満足しました(なんでだろう?) 本当にありがとうございました。
1そうだね
プレイ済み