![](/img/trans.png)
[英]Is `Thread.sleep` different with virtual threads (fibers) in Project Loom for Java
[英]Java - Different paint with multiple threads that have thread.sleep
我是新手,我正在嘗試制作游戲,但我不明白如何使用具有不同線程的不同塗料的 repaint() 。 一個線程有 thread.sleep 而另一個沒有。
這是我的一段代碼:
游戲面板:
public class GamePanel extends JPanel implements MouseListener, MouseMotionListener{
EnemyEngine enemyE = new EnemyEngine();
public GamePanel() {
new Thread(new Runnable() {
@Override
public void run() {
while(true){
repaint();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
while(true){
enemyE.update();
enemyE.repaint();
try {
Thread.sleep(1000/10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
public void paintComponent(Graphics g) {
// board painting
}
}
敵人引擎:
public class EnemyEngine extends JPanel{
Vector<Enemy> enemyVect = new Vector<>();
Random rand = new Random();
public void paintComponent(Graphics g){
for (Enemy enemy : enemyVect) {
enemy.render(g);
}
}
public void update() {
for (Enemy enemy : enemyVect) {
enemy.move();
}
}
}
我已經在互聯網上搜索過,但仍然沒有用……或者我可能是個愚蠢的人:/
請幫助我前輩
我不太明白你關於重繪的問題? 如果你想立即刷新ui,為什么不使用paintImmediately(0, 0, getWidth(), getHeight());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.