Olá pessoal,
bem eu estou criando um game, e parei na parte de pausar o jogo, pois bem, eu consigo pausar a minha nave(THREAD) só que no momento em que eu acesso outra THREAD em outra classe (INIMIGO) para também pausar o mesmo eu não consigo!
para ficar mais esclarecido observe o código abaixo:
Classe Inimigo:
public class Inimigos {
boolean pausarInimigo;
Image imagem;
int x, y;
boolean visivel;
int largura, altura;
int velocidade = 1;
long tempo;
private int alturaTela = 500;
public Inimigos() {
//costrutor sem paramentros
}
public Inimigos(int x, int y, final long tempo) {
this.x = x;
this.y = y;
this.tempo = tempo;
pausarInimigo = true;
ImageIcon objetoInimigo = new ImageIcon("arquivo/raptor.png");
imagem = objetoInimigo.getImage();
//deve ter alguma forma de melhorar isso
this.largura = 40;
this.altura = 40;
//visivel = false;
//isVisivel();
//É NESTE TRECHO QUE NÃO ESTOU CONSEGUINDO ACESSAR EM OUTRO CLASSE PARA DAR UM PAUSE NA THREAD
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
while(pausarInimigo) {
mexer();
Thread.sleep(tempo);
}
} catch (InterruptedException ex) {
}
}
});
t.start();
}
Classe JFrame:
public class NewJFrame extends javax.swing.JFrame {
Fase fase1;
Inimigos pauseThread;
boolean continuar;
Inimigos pausarInimigo;
Inimigos pausarIni = new Inimigos();
/**
* Creates new form NewJFrame
*/
public NewJFrame() {
continuar = false;
initComponentsP();
setSize(800, 650);
setVisible(true);
setLocationRelativeTo(null);
}
//AQUI O BOTÃO QUE FAZ AS THREADS FICAREM EM PAUSE
private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Fase.ThreadA.sleep(5000);
pauseThread.pausarInimigo = false;
} catch (InterruptedException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
como eu disse eu até consigo pausar a Thread que faz a minha nave se movimentar, porém não consigo fazer a thread do inimigo pausar!
Obs. direto dele eu consigo (matar ele)!
agradeceria muito a ajuda de vocês!
Att,
Ramatís Reis