0

dtキャンバスに JavaScript を使用して簡単なアニメーションを実装しています。画像は、各フレーム間の経過時間に基づいて位置を更新します。ここにコードがあります

var lastTime=0;
var speed=100;

mySprite = function() {
  this.pos=[0,0];
}

function spritePosition(dt) {
  for (i=0; i < Stuff.sprite.length;i++) {
    Stuff.sprite[i].pos[0] += speed*dt;  
    }
}

function animate(){

  var canvas=document.getElementById('mycan');
  var context=canvas.getContext('2d');

  var now = Date.now();
  var dt = (now - lastTime) / 1000.0;

  //clear
  context.clearRect(0, 0, canvas.width, canvas.height);


  //update
  spritePosition(dt);
  updateSprite();

  //render
  background(canvas,context);
  draw(context);

  lastTime = now;

  //request new Frame
  requestAnimFrame(function() {
    animate();
  });
}

window.onload=function(){
  init();
  animate();
}

dt

値は 0.3 ~ 0.5 の範囲ですが、

Stuff.sprite[i].pos[0] += speed*dt;##

位置の値を 136849325664.90016 として割り当てます。助けてください。

4

1 に答える 1