私は2d側のスクロールを作っています。私の人生のために、私は仕事に飛びつくことができません。これは私が左右に動いてやっている方法です:ゲームでジャンプする
for(var i = 0; i < time; i++)
newVelocityX = (oldVelocityX + accelerationX) * frictionX;
その後、私は
positionX = oldPositionX + newVelocityX行う私のプレーヤーの位置を更新します。
これはうまく動作します。変数 "time"には、最後に関数を実行してからの経過時間があります。摩擦はすごくうまくいき、X方向にはいいですね。これは私がY方向に持っているものです:
for(var i = 0; i < time; i++) {
accelerationY += gravityAccelerationY;
newVelocityY = oldVelocityY + accelerationY;
}
オブジェクトは重力のためうまく落ちます。ユーザーが上向き矢印を押したときに負の加速を設定すると、プレーヤーをジャンプさせることさえできますが、高速コンピュータでは非常に高くジャンプし、古いコンピュータでは非常に低くジャンプします。私はこれをどのように修正するのか分からない、私はすでに私がしたようにそれを貧しいループに入れて、これを説明していると思った。
古いタイマーの期限切れと新しいタイマーの開始との間にかなりの間隔があるかのように聞こえます。もちろん、遅いコンピュータでは、このような間隔は長くなります。しかし、これは単なる考えです:無関係なら無視してください。がんばろう。 – thb
さらにコードを見ることができますか?メインゲームのループなど? –