Cet article décrit le petit jeu de la lecture de Gophery mis en œuvre en Java. Partagez-le pour votre référence, comme suit:
Cela implique des connaissances connexes sur les fils Java et l'interface graphique. Un simple mini-jeu Java pour combattre Gophers. Les amis intéressés peuvent l'optimiser. Jetons un coup d'œil à l'effet de course:
Code spécifique:
Souris.java:
Importer java.awt.color; import java.awt.font; importer java.awt.graphics; import java.awt.image; import java.awt.toolkit; import java.awt.event.keyevent; import java.util.hashmap; Importer Java.util.map; Importer Java.util.random; x, y; Onglet INT privé; données int privé; Random rd = new Random (); Boolean privé en direct = true; private int moustetime = 10; Private Mouseclient MC; Toolkit statique privée tk = toolkit.getDefaultToolkit (); image statique privée [] imgs = null; Map statique privé <image, string> imgkv = new hashmap <image, string> (); statique {imgs = nouvelle image [] {tk.getImage (souris.class.getClassloader (). getResource ("images / a.png")), tk.getImage (souris.class.getClassloader (). GetResource ("images / b.png")), tk.getImage (Mouse.class.getClader (). "images / c.png")), tk.getImage (souris.class.getClassloader (). getResource ("images / d.png")), tk.getImage (souris.class.getClassloader (). GetResource ("images / e.png")), tk.getImage (Mouse.class.getCloDtoLother (). "images / f.png")), tk.getImage (mouse.class.getClassloader (). getResource ("images / g.png")), tk.getImage (souris.class.getClassloader (). GetResource ("images / h.png")), tk.getImage (Mouse.class.getClader (). "images / j.png")), tk.getImage (souris.class.getClassloader (). getResource ("images / j.png")), tk.getImage (souris.class.getClassloader (). GetResource ("Images / K.png")), tk.getImage (Mouse.class.getClassClower (). "Images / l.png")), tk.getImage (souris.class.getClassloader (). getResource ("images / m.png")), tk.getImage (souris.class.getClassloader (). GetResource ("images / n.png")), tk.getImage (Mouse.class.getClassCloder (). "Images / O.png")), tk.getImage (souris.class.getClassloader (). getResource ("images / p.png")), tk.getImage (souris.class.getClassloader (). GetResource ("images / q.png")), tk.getImage (Mouse.class.getClassOlder (). "Images / s.png")), tk.getImage (mouse.class.getClassloader (). getResource ("images / s.png")), tk.getImage (souris.class.getClassloader (). GetResource ("images / t.png")), tk.getImage (Mouse.class.getClassLoadher (). "Images / U.Png")), tk.getImage (Mouse.class.getClassloader (). GetResource ("Images / V.Png")), Tk.getImage (Mouse.Class.getClassloader (). GetResource ("Images / W.Png")), Tk.getImage (Mouse.Class.getClassLoadher (). "Images / x.png")), tk.getImage (souris.class.getClassloader (). getResource ("images / y.png")), tk.getImage (souris.class.getClassloader (). GetResource ("Images / Z.png")), tk.getImage (Mouse.Class.getCladaLer (). "Images / 1.png")), tk.getImage (mouse.class.getClassloader (). getResource ("images / 1.png")), tk.getImage (souris.class.getClassloader (). GetResource ("Images / 2.png")), tk.getImage (Mouse.class.getClOtLoadher (). "Images / 3.png")), tk.getImage (muouse.class.getClassloader (). getResource ("images / 4.png")), tk.getImage (souris.class.getClassloader (). GetResource ("Images / 5.png")), tk.getImage (Mouse.class.getClOtCoadher (). "Images / 6.png")), tk.getImage (mouse.class.getClassloader (). getResource ("images / 7.png")), tk.getImage (souris.class.getClassloader (). GetResource ("Images / 8.png")), tk.getImage (Mouse.class.getClOtLoadher (). "images / 9.png"))}; imgkv.put (imgs [0], "a"); imgkv.put (imgs [1], "b"); imgkv.put (imgs [2], "c"); imgkv.put (imgs [3], "d"); imgkv.put (imgs [4], "e"); imgkv.put (imgs [5], "f"); imgkv.put (imgs [6], "g"); imgkv.put (imgs [7], "h"); imgkv.put (imgs [8], "i"); imgkv.put (imgs [9], "j"); imgkv.put (imgs [10], "k"); imgkv.put (imgs [11], "l"); imgkv.put (imgs [12], "m"); imgkv.put (imgs [12], "m"); imgkv.put (imgs [10], "k"); imgkv.put (imgs [11], "l"); imgkv.put (imgs [12], "m"); imgkv.put (imgs [13], "n"); imgkv.put (imgs [14], "o"); imgkv.put (imgs [15], "p"); imgkv.put (imgs [16], "q"); imgkv.put (imgs [17], "r"); imgkv.put (imgs [18], "s"); imgkv.put (imgs [19], "t"); imgkv.put (imgs [20], "u"); imgkv.put (imgs [21], "v"); imgkv.put (imgs [22], "w"); imgkv.put (imgs [22], "w"); imgkv.put (imgs [20], "u"); imgkv.put (imgs [21], "v"); imgkv.put (imgs [22], "w"); IMGKV.PUT (IMGS [22]); imgkv.put (imgs [22 "); imgkv.put (imgs [23]," x "); imgkv.put (imgs [24]," y "); imgkv.put (imgs [25]," z "); imgkv.put (imgs [26]," 0 "); imgkv.put (imgs [27]," 1 "); IMGKV.PUT (IMGS [28], "2"); IMGKV.PUT (IMGS [30], "4"); } Public Mouse (int x, int y, int, Mousclient MC) {this.x = x; = 0; MC.ECLIPSETIME ++; {public void run () {while (true) {MousEtime--;Mouseclient.java:
Importer java.awt.color; import java.awt.frame; import java.awt.graphics; import java.awt.image; import java.awt.event.keyadapter; import java.awt.event.keyevent; import java.awt.windowevent; import; import; java.util.arraylist; import java.util.list; import java.util.random; public class Mouseclient étend le cadre {/ * * Spécifications de toute l'interface de jeu * / public static final int game_width = 1000; public static final int game_height = 700; INT MOUSECOUNT PUBLIQUE; Public Static Int Count; public static int gametime; public static int eclipsetime; List <souris> mousses = new ArrayList <Souris> (); Random rd = new Random (); public int initMousCount = 2; // Le nombre de gophers affiché en même temps public int [] tab = new int [10]; // marque s'il y a des gophers dans l'image de pit offscreenImage = null; / * * Cette méthode affiche la fenêtre principale * / public void LaunchFrame () {this.setLocation (200, 10); this.setSize (Game_Width, Game_Height); this.setTitle ("Mouseclient"); this.addwindowListener (new WindowAdapter () {public void windowClosing (windowEvent e) {System.exit (0);}}); this.setVisible (true); this.setbackground (Color.Green); this.setResiSable (false); this.addkeyListener (new KeyMonitor ()); nouveau fil (new PaintThread ()). start (); nouveau thread (new GameTime ()). start (); } classe privée GAMETime implémente Runnable {public void run () {while (true) {gameTime ++; essayez {thread.sleep (1000); } catch (InterruptedException e) {e.printStackTrace (); }}}}} Classe privée PaintThread implémente Runnable {public void run () {while (true) {repent (); essayez {thread.sleep (10); } catch (InterruptedException e) {e.printStackTrace (); }}}} public void Update (Graphics g) {if (offScreenImage == null) {offScreenImage = this.createImage (Game_Width, Game_Height); } Graphics GoffScreen = offScreenImage.getGraphics (); Couleur c = goffscreen.getColor (); Goffscreen.setColor (Color.Green); goffscreen.fillrect (0, 0, game_width, game_height); Goffscreen.setColor (C); peinture (goffscreen); G.DrawImage (OffScreenImage, 0, 0, null); } public void peinture (graphiques g) {couleur c = g.getColor (); g.setColor (colore.gray); pour (int i = 1; i <= 3; i ++) pour (int j = 1; j <= 3; j ++) g.Filloval (game_width / 4 * i - 60, game_height / 4 * j - 25, 120, 50); g.setColor (c); G.Drawstring ("Nombre de coups:" + Count, 20, 40); G.Drawstring ("Nombre de coups:" + MousCount, 20, 60); G.Drawstring ("Nombre de courses:" + eclipseTime + "", 20, 80); G.Drawstring ("Nombre de courses:" + eclipseTime + "", 20, 80); G.Drawstring ("Nombre de courses:" + eclipseTime + "", 20, 80); G.Drawstring ("Nombre de courses:" + GameTime + "S", 20, 80); G.Drawstring ("Nombre de courses:" + eclipseTime + "", 20, 80); G.Drawstring ("Nombre de courses:" + GameTime + "S", 20, 80); G.Drawstring ("Nombre de courses:" + GameTime + "S", 20, 80); G.Drawstring ("Nombre de courses:" + GameTime + "S", 20, 80); G.Drawstring ("Nombre de courses:" + GameTime + "S", 20, 80); G.Drawstring ("Nombre de courses:" + GameTime + "S", 20, 80); G.Drawstring ("Nombre de courses:" + GameTime + "S", 20, 80); G.Drawstring ("Nombre de courses:" + GameTime + "S", 2 100); if (mousent> = 80) InitMousCount = 8; else if (mousent> = 50) initimousCount = 6; else if (mousent> = 20) initimousCount = 4; int temp; while (mouses.size () <initimousCount) {temp = rd.nextint (9); while (tab [temp] == 1) {temp ++; if (temp == 9) temp = 0; } tab [temp] = 1; MOUSE.ADD (NOUVEAU MOUSE (GAME_WIDTH / 4 * (TEMP% 3 + 1) - 70, GAME_HEIGHT / 4 * (TEMP / 3 + 1) - 100, temp, this)); } pour (int i = 0; i <mousses.size (); i ++) {souris m = mouses.get (i); m.raw (g); }} public static void main (String [] args) {Mouseclient km = new Mouseclient (); km.launchframe (); } la classe privée KeyMonitor étend KeyAdapter {public void keyrelent (keyEvent e) {System.out.println (e.getKeycode ()); Count ++; pour (int i = 0; i <mousses.size (); i ++) {if (mouses.get (i) .Keyreled (e)) bris; }}}}Pièce jointe: cliquez ici pour télécharger l'exemple complet du code.
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.