0% ont trouvé ce document utile (0 vote)
5 vues4 pages

Code Java pour un jeu Pacman

Le document présente un code Java pour un jeu de type Pacman, développé par X5K MaStEr X5K et John, avec des références à un code antérieur de Karl Hornell. Il décrit la structure de l'applet, les méthodes pour gérer les graphiques, le fil d'exécution du jeu, ainsi que la gestion des entrées clavier. Le code inclut des placeholders pour le chargement des graphiques et la gestion des événements, tout en établissant une boucle principale pour le rendu du jeu.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues4 pages

Code Java pour un jeu Pacman

Le document présente un code Java pour un jeu de type Pacman, développé par X5K MaStEr X5K et John, avec des références à un code antérieur de Karl Hornell. Il décrit la structure de l'applet, les méthodes pour gérer les graphiques, le fil d'exécution du jeu, ainsi que la gestion des entrées clavier. Le code inclut des placeholders pour le chargement des graphiques et la gestion des événements, tout en établissant une boucle principale pour le rendu du jeu.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

// Pacman par X5K MaStEr X5K et John

// A commencé le 10 septembre 2001


// Nous avons utilisé du code provenant de :
// Distorsion
// Par Karl Hornell, 10 juin 1996
// pour nous mettre en route. Merci Karl !

importer [Link].*;
import [Link].*;
import [Link];
importer [Link].*;
importer [Link];

importer [Link];

public final class Pacman extends [Link] implements Runnable {

Fil updateThread; // fil dans lequel le jeu s'exécute


long startTime; // utilisé pour suivre le timing et pour p
empêcher l'applet de s'exécuter trop rapidement

Graphiques gBuf; // utilisé pour des graphiques en double tampon


Image imgBuf; // également utilisé pour les graphiques en double tampon
static final int MAX_X = 400; // la largeur maximale que peut avoir l'écran de jeu
static final int MAX_Y = 400; // la hauteur maximale que peut atteindre l'écran de jeu

public void init()


{
// Faites en sorte que la fenêtre de l'applet ait la taille que nous souhaitons
redimensionner(MAX_X, MAX_Y);

// Charger les images que nous allons utiliser depuis le web


getMainGraphics();
// Appel de ramassage des ordures. Pas vraiment nécessaire.
[Link]();

// Faire un fond noir


setBackground([Link]);
// Configurer des graphiques en double tampon.
Cela nous permet de dessiner sans scintillement.
imgBuf = créerImage(MAX_X, MAX_Y);
gBuf = [Link]();
// essayer de saisir le focus du clavier.
demanderFocalisation();
}

public void getMainGraphics() // Load and process the most common graphics
{
MediaTracker tracker;
int i = 0;

tracker = new MediaTracker(this);


// ce code ne charge encore aucune graphique !

essayer
{
[Link]();
}
attraper (InterruptedException e)
{
}

public void run()


{
// C'est la méthode la plus importante. Elle boucle sur et
// encore une fois alors que le jeu est en cours. Cela fait les appels
// qui déplacent les choses puis les dessinent.

tant que (updateThread != null)


{
essayer
{
// ce code ralentit l'applet s'il est sur un vraiment
machine rapide
long sleepTime = [Link](startTime, [Link])
Millis(), 20);
[Link](sleepTime);
}
attraper (InterruptedException e)
{
}
startTime = [Link]() + 40;
// DESSINEZ DES CHOSES ICI :

// effacer ce que nous avons dessiné la dernière fois.


[Link](0, 0, MAX_X, MAX_Y);
// définir la couleur de dessin
[Link]([Link]);
// dessiner un rectangle pour l'instant.
[Link](10, 10, 50, 50);

// repaint() appellera paint(Graphics) qui appellera update(Gr


graphismes)
repeindre();
}
}
// Cette méthode est appelée lorsque l'applet est exécuté.
// It initiallizes the thread and gets things going.
public void start()
{
si (updateThread == null)
{
updateThread = new Thread(this, "Jeu");
[Link]();
startTime = [Link]();
}
}
// Cette méthode est appelée lorsque l'applet est arrêtée.
public void arrêter()
{
updateThread = null;
}

public boolean keyDown([Link] e, int key)


{
// Cette méthode gère les pressions de touche.
// For now all the statements are placeholders.
C'est agréable d'avoir une instruction d'impression ici.
// il peut être rapidement décommenté et la sortie
// utilisé pour obtenir les keycodes puisque je suis trop paresseux pour
// cherchez-les.

//[Link](clé);

si (key == 1006) // flèche droite


{

return false;
}
si (clé == 1007) // flèche gauche
{

retourne faux;
}
si (key == 1004) // flèche vers le haut
{

return false;
}
si (key == 1005) // flèche vers le bas
{

retourner faux;
}
si (clé == 32) // touche d'espace
{

retourner faux;
}
si (touche == 112) // touche 'P'
{
retourner faux;
}

retourner faux;
}

public boolean keyUp([Link] e, int key)


{
// Cette méthode est appelée lorsqu'une touche est relâchée.

pour l'instant, cela n'a que des espaces réservés.

si (key == 1006 key == 1007) // clé gauche ou droite relâchée


{

retourner faux;
}
si (touche == 1004 touche == 1005) // touche haut ou bas relâchée.
{

retourner faux;
}
si (touche == 32) // barre d'espace relâchée
{

retourner faux;
}
renvoyer faux;
}
// Pour assurer la compatibilité avec Java 1.1, demander le focus sur mouseDown
public boolean sourisEnfoncée([Link] e, int x, int y)
{
demanderConcentration();
retourner faux;
}

public void dessiner(Graphics g) // Dessiner le panneau de contrôle et autres


{
Puisqu'il n'y a pas de frontières ni quoi que ce soit
// statique pour dessiner mais nous n'avons besoin d'appeler que
// la méthode de mise à jour.
mettre à jour(g);
}
public void mettreÀJour(Graphics g)
{
// dessiner le tampon hors écran sur l'écran !
// Ce tampon a été dessiné par la méthode run()
// et par toutes les méthodes que run() pourrait avoir appelées.
[Link](imgBuf, 0, 0, this);

Vous aimerez peut-être aussi