Я новичок ie, и я пытаюсь сделать игру, но я не понимаю, как использовать repaint () из другой краски с разными потоками. Один поток с thread.sleep, а другой нет.
Вот мой кусок кода:
GamePanel:
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
}
}
EnemyEngine:
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();
}
}
}
Я уже искал по inte rnet, но он все еще не работал ... или, может быть, я глупый: /
Пожалуйста, помогите мне сэмпай