Scratchでアニメーションをスムーズにするにはどうすればよいですか? 主に、右矢印を押したままにすると、目立ったジッターなしで右に行くようにしたい. さらに、スクラッチを使用すると、矢印を保持しているときに繰り返すのに 1 秒待つ必要があります。どうすればこれを滑らかにできますか?
7 に答える
「矢印が押されていない」までできます
矢印が押されたら、矢印が押されなくなるまで移動(またはグライド)を繰り返します
その後、設定された間隔でキーが押されているかどうかをチェックしないため、移動がスムーズになります。
Glide
Scratch を使用すると、長い距離または間隔で使用して非常に滑らかな動きを得ることができます。ただし、この方法の欠点は、スプライトがエッジや衝突の検出などの検出を行う前に、グライド操作を終了する必要があることです。これは多くの場合、望ましくありません。
キーを押したときの小さな遅延は、実際にはキーボードのリピート レートに直接関係しています。キーボードのキーを押すと、そのキー イベントが送信されますが、リピートが開始されるまでに少し時間がかかります。システム キーボードのリピート レートを変更する方法を見つけることができれば、これは Scratch に引き継がれます。
Scratch でできる最適化には限界があります。結局のところ、これは非常に基本的な (しかし非常に楽しい) エントリーレベルのプログラミング環境です。:)
あなたはこれを行うことができます:
When flag pressed
forever
if (right arrow pressed?) then
change xs by 1
xs = xs * 0.8
change x by (xs)
右矢印が押されているかどうかを毎回チェックし、押されている場合は変数xs
を 1 つずつ変更します。その後、xs に 0.8 を乗算するため、値がわずかに減衰します。
次に、スプライトの x を var で変更しxs
ます。
スムーズな x 移動のためにこれを行うことができます。
forever
change x by (([amount] - (x position)) / [divide])
どの「量」がどれだけ移動したいか、「分割」がどれだけスムーズかを表します。(スムージング y で同じことを行います)
または、x と y の動きを滑らかにすることもできます。
forever
go to x: (([amount] - (x position)) / [divide]) y: (([amount] - (x position)) / [divide])
また、スプライトをマウスにスムーズに滑らせることができます。
forever
go to x: (((mouse x) - (x position)) / [divide]) y: (((mouse y) - (x position)) / [divide])