Dieser Artikel beschreibt das kleine Spiel des in Java implementierten Gopherry. Teilen Sie es für Ihre Referenz wie folgt weiter:
Dies beinhaltet verwandte Kenntnisse über Java -Threads und GUI. Ein einfaches Java Mini -Spiel, um Gophers zu bekämpfen. Interessierte Freunde können es optimieren. Schauen wir uns den Laufeffekt an:
Spezifischer Code:
Maus.java:
Import Java.awt.Color; Import Java.awt.font; Import Java.awt.graphics; Import Java.awt.image; Import Java.awt.toolkit; Import Java.awt.event.Keyevent; x, y; Private int Tab; private Int -Daten; Random Rd = new random (); privat boolean live = true; private int mousetime = 10; privater MOUSeclient MC; private statische Toolkit tk = Toolkit.getDefaulttoolkit (); privates statisches Bild [] imgs = null; private statische Karte <Bild, String> imgkv = new Hashmap <Abbilds, String> (); static {imgs = new Image [] {tk.getImage (mouse.class.getClassloader (). getResource ("Images/a.png"), tk.getimage (mouse.class.getClassloader (). getResource ("Images/B.png"), Tk.getImage (Mouse.Class.Class.) (), TK.GEGE (MOUSOWN (MOUSGASN) (), TK.GEGE (MOUES.CLASS. () (), TK.GEGE (MOUES.CLASS.) (), TK.GEGE (MOUSOWN (MOUSGASN) (), TK.GEGE (MOUSGASN (MOUSGACK) (), TK.GE. "Bilder/c.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/d.png"), tk.getImage (mouse.class.getClassloader (). getResource ("Images/e.png"), tk.getImage (mouse.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.clas. "images/F.png")), tk.getImage(Mouse.class.getClassLoader().getResource( "images/G.png")), tk.getImage(Mouse.class.getClassLoader().getResource( "images/H.png")), tk.getImage(Mouse.class.getClassLoader().getResource( "Images/j.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/j.png"), tk.getImage (mouse.class.getClassloader (). getResource ("Images/k.png"), tk.getimage (Mouse.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.classader (). "Images/l.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/m.png"), tk.getimage (mouse.class.getClassloader (). getResource ("Images/n.png"), tk.getImage (Mouse.Class.Classes (). "Images/o.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/p.png"), tk.getimage (mouse.class.getClassloader (). getResource ("Images/q.png"), tk.getImage (Mouse.class.Classes (). "Images/s.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/s.png"), tk.getImage (mouse.class.getClassloader (). getResource ("Images/T.Png"), tk.getimage (Mouse.class.class.class.class.Classes.Classes (). "Images/u.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/v.png"), tk.getimage (mouse.class.getClassloader (). getResource ("Images/W.Png"), tk.getimage (Mouse.classes (). "Images/X.Png")), tk.getimage (maus.class.getClassloader (). getResource ("Bilder/Y.Png"), tk.getImage (mouse.cass.getClassloader (). getResource ("Images/z.png"), Tk.Getimage (Mouse.class.classader ()), Tk.GetImage (mouse.class.classader ()), tk.getImage (mouse.classader ()), tk.g. "Bilder/1.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/1.png"), tk.getimage (mouse.class.getClassloader (). getResource ("Images/2.png"), tk.getImage (mouse.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.classader (). "Bilder/3.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/4.png"), tk.getimage (mouse.class.getClassloader (). getResource ("Images/5.png"), tk.getImage (mouse.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.clas. "Bilder/6.png")), tk.getImage (maus.class.getClassloader (). getResource ("Images/7.png"), tk.getimage (mouse.class.getClassloader (). getResource ("Images/8.png"), tk.getImage (Mouse.class.class.class.class.class.class.class.class.class.class.class.class.class.class.class.clas. "Bilder/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 [28], "2"); Imgkv.Put (IMGS [30], "4"); } public maus (int x, int tab, mouseclient mc) {this.x = x; = 0; mc.eclipsetime ++}} öffentlicher booleaner Keepon (KeyEvent e) {int key = imgkv.get (IMGS). {public void run () {while (true) {musetime--;Mouseclient.java:
Import Java.awt.Color; Import Java.awt.Frame; Import Java.awt.graphics; Import Java.awt.image; Import Java.awt.event.keyadapter; Java.util.ArrayList; Import Java.util.List; Import Java.util.random; Public Class MouseClient erweitert Frame { /** Spezifikationen der gesamten Spielschnittstelle* / public static final int game_width = 1000; public static final int game_height = 700; öffentliche statische Int MouseCount; öffentliche statische Int Count; öffentliches statisches int gametime; öffentliche statische Int EclipSetime; Liste <Maus> mouses = new ArrayList <Maus> (); Random Rd = new random (); public init initmouseCount = 2; // Die Anzahl der Gophers, die gleichzeitig angezeigt werden, public int [] tab = new int [10]; // markieren, ob es im Boxenbild außerhalb des Screenimage = NULL; /** Diese Methode zeigt das Hauptfenster an*/ public void stirpframe () {this.setLocation (200, 10); this.setSize (Game_Width, Game_Height); this.settitle ("mouseclient"); this.addwindowlistener (neuer Fensteradapter () {public void windowsClosing (windowEvent e) {System.exit (0);}}); this.setvisible (true); this.setbackground (color.green); this.setResizable (falsch); this.addKeyListener (neuer Keymonitor ()); neuer Thread (neuer Painthread ()). start (); neuer Thread (neuer Gametime ()). start (); } private class gametime implements runnable {public void run () {while (true) {gametime ++; try {thread.sleep (1000); } catch (interruptedException e) {e.printstacktrace (); }}}}} private class malthread implements runnable {public void run () {while (true) {repaint (); try {thread.sleep (10); } catch (interruptedException e) {e.printstacktrace (); }}}} public void update (Grafik g) {if (offscreenimage == null) {offscreenimage = this.createimage (game_width, game_height); } Graphics goffscreen = offscreenimage.getGraphics (); Farbe c = goffscreen.getColor (); goffscreen.setColor (color.green); goffscreen.fillRect (0, 0, game_width, game_height); goffscreen.setColor (c); Farbe (Goffscreen); G.Drawimage (Offscreenimage, 0, 0, NULL); } public void Paint (Grafik g) {Farbe c = g.getColor (); g.setColor (color.gray); für (int i = 1; i <= 3; i ++) für (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 ("Anzahl der Hits:" + count, 20, 40); G.Drawstring ("Anzahl der Hits:" + MouseCount, 20, 60); g.drawstring ("Anzahl der Läufe:" + eclipSetime + "", 20, 80); g.drawstring ("Anzahl der Läufe:" + eclipSetime + "", 20, 80); g.drawstring ("Anzahl der Läufe:" + eclipSetime + "", 20, 80); G.Drawstring ("Anzahl der Läufe:" + gametime + "S", 20, 80); g.drawstring ("Anzahl der Läufe:" + eclipSetime + "", 20, 80); G.Drawstring ("Anzahl der Läufe:" + gametime + "S", 20, 80); G.Drawstring ("Anzahl der Läufe:" + gametime + "S", 20, 80); G.Drawstring ("Anzahl der Läufe:" + gametime + "S", 20, 80); G.Drawstring ("Anzahl der Läufe:" + gametime + "S", 20, 80); G.Drawstring ("Anzahl der Läufe:" + gametime + "S", 20, 80); G.Drawstring ("Anzahl der Läufe:" + gametime + "S", 20, 80); g.drawstring ("Anzahl der Läufe:" + gametime + "S", 2 100); if (mouseCount> = 80) initmouseCount = 8; sonst wenn (mouseCount> = 50) initmouseCount = 6; sonst wenn (MouseCount> = 20) initmouseCount = 4; int temp; while (mouses.size () <initmouseCount) {temp = rd.nextint (9); while (tab [temp] == 1) {temp ++; if (temp == 9) temp = 0; } Tab [temp] = 1; mousses.add (neue Maus (Game_width / 4 * (Temp % 3 + 1) - 70, Game_Height / 4 * (temp / 3 + 1) - 100, temp, this)); } für (int i = 0; i <mouses.size (); i ++) {Maus m = Mouses.get (i); M.Draw (g); }} public static void main (String [] args) {mouseclient km = new mouseclient (); km.launchFrame (); } private Klasse Keymonitor erweitert den Keyadapter {public void keyRepest (KeyEvent e) {System.out.println (e.getKeyCode ()); zählen ++; für (int i = 0; i <mouses.size (); i ++) {if (mouses.get (i) .Keyrelest (e)) break; }}}}Anhang: Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen .
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.