提问者:小点点

动画在java中是如何工作的?[关闭]


想要改进这个问题?更新问题,使其仅通过编辑这篇文章专注于一个问题。

我不太确定人们是如何在java中创建动画的,比如在屏幕上平移一个正方形。当我尝试使用for循环改变矩形的位置时,所有东西都会立即执行,最终得到矩形的结束坐标。所以我想知道的是人们如何加班实现这些流畅的动画,如果我想创建我的自定义动画类,无论出于什么原因,我将如何添加延迟以使其显示为动画,而不是java中的即时位置变化?


共2个答案

匿名用户

您可以简单地存储矩形的x和y位置。然后运行一个while循环,检查是否已经过了给定的时间量。如果是,增加位置变量。

代码(需要稍作调整以满足您的需求):

int tick = 500; //set this to whatever you want
long lastTime = System.currentTimeInMillis();
while(true) {
 long currTime = System.currentTimeInMillis();
 if (currTime > lastTime + tick) {
  lastTime = currTime;
  x = x + 1; //replace this with your object's position
 }
}

匿名用户

您可以使用Thread.睡眠(长毫秒)方法添加延迟,该方法将使当前线程的执行停止指定的毫秒数。但是可能有更好的方法。