Javascript 如何使此动画从右向左移动?

Javascript 如何使此动画从右向左移动?,javascript,html,animation,html5-canvas,Javascript,Html,Animation,Html5 Canvas,我一直在学习一些JavaScript,这是其中一个练习。它工作得很好,但其中的一个挑战是让动画从右向左,我已经在那里停留了一段时间。我相信这很简单,但我尝试过的一切都不起作用 “严格使用”; var测试={ 画布:未定义, 画布上下文:未定义, 矩形位置:0 }; Test.start=函数(){ Test.canvas=document.getElementById(“myCanvas”); Test.canvasContext=Test.canvas.getContext(“2d”); T

我一直在学习一些JavaScript,这是其中一个练习。它工作得很好,但其中的一个挑战是让动画从右向左,我已经在那里停留了一段时间。我相信这很简单,但我尝试过的一切都不起作用

“严格使用”;
var测试={
画布:未定义,
画布上下文:未定义,
矩形位置:0
};
Test.start=函数(){
Test.canvas=document.getElementById(“myCanvas”);
Test.canvasContext=Test.canvas.getContext(“2d”);
Test.mainLoop();
};
document.addEventListener('DOMContentLoaded',Test.start);
Test.update=函数(){
var d=新日期();
Test.rectanglePosition=d.getTime()%Test.canvas.width;
};
Test.draw=函数(){
Test.canvasContext.fillStyle=“绿色”;
Test.canvasContext.fillRect(Test.rectanglePosition,100,50,50);
};
Test.mainLoop=函数(){
Test.clearCanvas();
Test.update();
Test.draw();
设置超时(Test.mainLoop,1000/60);
};
Test.clearCanvas=函数(){
Test.canvasContext.clearRect(0,0,Test.canvas.width,Test.canvas.height);
};

您应该可以通过更改
测试更新功能来完成此操作

目前,您正在查看
d
的秒数,并将其除以屏幕宽度,然后获取剩余的秒数。用剩下的部分确定正方形的水平位置

如果在更新功能之外设置变量
i
方向
,并用方向(+或-)调整
i
每次更新,直到达到0或屏幕宽度,您应该能够使其来回移动。。。查看更新:

“严格使用”;
var测试={
画布:未定义,
画布上下文:未定义,
矩形位置:0
};
var i=0//广场的当前位置
var方向=1//如果我们向右走,-1如果我们向左走
Test.start=函数(){
Test.canvas=document.getElementById(“myCanvas”);
Test.canvasContext=Test.canvas.getContext(“2d”);
Test.mainLoop();
};
document.addEventListener('DOMContentLoaded',Test.start);
Test.update=函数(){
//var d=新日期();
//Test.rectanglePosition=d.getTime()%Test.canvas.width;
if(i=(Test.canvas.width-50)){
//Text.canvas.width-50是您可以到达的距离
//不需要在屏幕上运行方块
//(因为50是正方形的宽度)
方向=-1;
}
i+=方向;
Test.rectanglePosition=i;
};
Test.draw=函数(){
Test.canvasContext.fillStyle=“绿色”;
Test.canvasContext.fillRect(Test.rectanglePosition,100,50,50);
};
Test.mainLoop=函数(){
Test.clearCanvas();
Test.update();
Test.draw();
设置超时(Test.mainLoop,1000/60);
};
Test.clearCanvas=函数(){
Test.canvasContext.clearRect(0,0,Test.canvas.width,Test.canvas.height);
};


此行需要更改。现在,X被设置为正,但您需要将其设置为负才能向左:
Test.rectanglePosition=d.getTime()%Test.canvas.width好运气汉克斯,这比我想要的要多,我相信这对我以后会有用,我自己找到了解决方案