在 Java 中每秒用给定数字之间的值更新整数值
Update integer values every second in Java with something between the given numbers
我有 2 个整数值,假设 int a = 5 和 int b = 4。
public static void run() {
long lastTime = System.nanoTime();
final double ns = 1000000000.0 / 60.0;//60 times per second
double delta = 0;
while(running) {
long now = System.nanoTime();
delta = delta + ((now-lastTime) / ns);
lastTime = now;
while (delta >= 1)//Make sure update is only happening 60 times a second
{
delta--;
}
}
我想要实现的是能够每秒将 while (delta >= 1){}
内的整数值更改为 100 到 400 之间的数字。我想创建一个采用值的绘制方法整数并更新我的 JFrame 中的组件大小。我只是需要一个想法,这样我才能继续前进。
我不确定我是否完全理解你的问题。但是,如果您的意图是每秒 运行 一段代码 60 次,那么肯定有一种更简单的方法可以实现此目的 - 通过 Java 的 Thread.sleep()
机制。您可以使用 Java 的 Random
class 实际为 a
和 b
:
生成随机值
public static void run() {
Random random = new Random();
while (running) {
try {
Thread.sleep(16); // 16 millisecond sleep; will run 60 times per second
// Generate random number between 100 and 400
a = (random.nextInt() % 300) + 100;
b = (random.nextInt() % 300) + 100;
} catch (Exception e) {
System.out.println("Exception encountered when trying to sleep! " + e.toString());
}
}
}
或者,您也可以使用 Java 的 Timer
和 TimerTask
class 来达到同样的效果。
我有 2 个整数值,假设 int a = 5 和 int b = 4。
public static void run() {
long lastTime = System.nanoTime();
final double ns = 1000000000.0 / 60.0;//60 times per second
double delta = 0;
while(running) {
long now = System.nanoTime();
delta = delta + ((now-lastTime) / ns);
lastTime = now;
while (delta >= 1)//Make sure update is only happening 60 times a second
{
delta--;
}
}
我想要实现的是能够每秒将 while (delta >= 1){}
内的整数值更改为 100 到 400 之间的数字。我想创建一个采用值的绘制方法整数并更新我的 JFrame 中的组件大小。我只是需要一个想法,这样我才能继续前进。
我不确定我是否完全理解你的问题。但是,如果您的意图是每秒 运行 一段代码 60 次,那么肯定有一种更简单的方法可以实现此目的 - 通过 Java 的 Thread.sleep()
机制。您可以使用 Java 的 Random
class 实际为 a
和 b
:
public static void run() {
Random random = new Random();
while (running) {
try {
Thread.sleep(16); // 16 millisecond sleep; will run 60 times per second
// Generate random number between 100 and 400
a = (random.nextInt() % 300) + 100;
b = (random.nextInt() % 300) + 100;
} catch (Exception e) {
System.out.println("Exception encountered when trying to sleep! " + e.toString());
}
}
}
或者,您也可以使用 Java 的 Timer
和 TimerTask
class 来达到同样的效果。