Quand j'ai fait simples jeux de fil simple, je mis en œuvre la logique du jeu de la même manière que le Space Invaders tutorial de plus en plus célèbre fait comme indiqué ci-dessous:thread séparé pour Java logique de jeu
public static void main(String[] args) { //This is the COMPLETE main method
Game game = new Game(); // Creates a new game.
game.gameLogic(); // Starts running game logic.
}
Maintenant, je veux essayer de exécuter ma logique sur un fil séparé mais j'ai des problèmes. Ma logique de jeu est dans un fichier de classe distinct qui ressemble à ceci:
public class AddLogic implements Runnable {
public void logic(){
//game logic goes here and repaint() is called at end
}
public void paintComponent(Graphics g){
//paints stuff
}
public void run(){
game.logic(); //I know this isn't right, but I cannot figure out what to put here. Since run() must contain no arguments I don't know how to pass the instance of my game to it neatly.
}
}
... Et ma principale méthode ressemble à ceci:
public static void main(String[] args) { //This is the COMPLETE main method
Game game = new Game(); // Creates a new game.
Thread logic = new Thread(new AddLogic(), "logic"); //I don't think this is right either
logic.start();
}
Comment appeler correctement la méthode logique() sur l'instance de mon jeu?
Voilà! J'étais si proche de ça il y a un petit moment, mais j'avais un '=' entre 'Game' et' game' où vous avez écrit 'Private Game '; DOH! – ubiquibacon