想要改进这个问题?更新问题,使其仅通过编辑这篇文章专注于一个问题。
我不太确定人们是如何在java中创建动画的,比如在屏幕上平移一个正方形。当我尝试使用for循环改变矩形的位置时,所有东西都会立即执行,最终得到矩形的结束坐标。所以我想知道的是人们如何加班实现这些流畅的动画,如果我想创建我的自定义动画类,无论出于什么原因,我将如何添加延迟以使其显示为动画,而不是java中的即时位置变化?
您可以简单地存储矩形的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.睡眠(长毫秒)方法添加延迟,该方法将使当前线程的执行停止指定的毫秒数。但是可能有更好的方法。