Artikel ini menjelaskan permainan kecil bermain gopherry yang diimplementasikan di Java. Bagikan untuk referensi Anda, sebagai berikut:
Ini melibatkan pengetahuan terkait tentang utas Java dan GUI. Game mini Java sederhana untuk melawan Gophers. Teman yang tertarik dapat mengoptimalkannya. Mari kita lihat efek berjalan:
Kode Khusus:
Mouse.java:
Impor java.awt.color; impor java.awt.font; impor java.awt.graphics; impor java.awt.image; impor java.awt.toolkit; impor java.awt.event.keyevent; impor java.util.hashmap; impor java.uvent michaD.omraP; x, y; tab int private; data int pribadi; Acak rd = acak baru (); private boolean live = true; private int mousetime = 10; MC mouseclient pribadi; private static toolkit tk = toolkit.getDefaultToolKit (); gambar statis pribadi [] imgs = null; peta statis pribadi <gambar, string> imgkv = hashmap baru <gambar, string> (); static {imgs = gambar baru [] {tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/a.png"), tk.getImage (mouse.class.getClasser (). getResource ("gambar/b.png"), tk.geteMer (). GetResource ("Images/b.png")), tk. "gambar/c.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/d.png")), tk.getimage (mouse.class.getClassLoader (). getResource ("gambar/e.png")), tk.getimage (mousecoad. "Images/f.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/g.png"), tk.getimage (mouse.class.getClassLoader (). getResource ("gambar/h.png"), tk. "Images/j.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/j.png")), tk.getimage (mouse.class.getClassLoader (). getResource ("gambar/k.png")), tk.getimage (). "gambar/l.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/m.png")), tk.getimage (mouse.class.getClassLoader (). getResource ("gambar/n.png")), tk.getImage. "gambar/o.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/p.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/q.png")), tk.getImage (). "gambar/s.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/s.png")), tk.getimage (mouse.class.getClassLoader (). getResource ("gambar/t.png")), tk.getimage (). "Images/u.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/v.png")), tk.getimage (mouse.class.getClassLoader (). getResource ("gambar/w.png")), tk.getImage. "Images/x.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/y.png"), tk.getimage (mouse.class.getClassLoader (). GetResource ("Images/Z.png"), tk. "gambar/1.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/1.png")), tk.getimage (mouse.class.getClassLoader (). getResource ("gambar/2.png")), tk.getimage (mousecoad. "gambar/3.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/4.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/5.png"), tk.getimage (mousecoad. "gambar/6.png")), tk.getImage (mouse.class.getClassLoader (). getResource ("gambar/7.png")), tk.getimage (mouse.class.getClassLoader (). getResource ("gambar/8.png"), tk.getimage (mousecoad. "gambar/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," 22 "; IMGKV.put (IMGS [28], "2"); imgkv.put (IMGS [30], "4"); } Public Mouse (int x, y, int tab, mouseclient MC) {this.x = x ini. = Kembali; mc.eclipsetime ++; {public void run () {while (true) {Mousetime--Mouseclient.java:
Impor java.awt.color; impor java.awt.frame; impor java.awt.graphics; impor java.awt.image; impor java.awt.event.keyadapter; import java.awt.event.keyevent; impor java.awt.event.windowowadapter; java.util.arraylist; import java.util.list; impor java.util.random; kelas publik mouseClient memperluas bingkai { /** spesifikasi dari seluruh antarmuka game* / public static int game_width = 1000; Public Static Int Game_height = 700; public static int mouseCount; Hitungan int statis publik; gametime int statis publik; Eclipsetime statis publik; Daftar <Mouse> mouses = ArrayList baru <Mouse> (); Acak rd = acak baru (); public int initmouseCount = 2; // Jumlah gophers yang ditampilkan pada saat yang sama int int [] tab = int baru [10]; // tandai apakah ada gophers di gambar pit offscreenimage = null; /** Metode ini menampilkan jendela utama*/ public void launchframe () {this.setLocation (200, 10); this.setsize (Game_Width, Game_Height); this.settitle ("mouseclient"); this.addwindowlistener (windowAdapter baru () {public void windowclosing (windowevent e) {system.exit (0);}}); this.setVisible (true); this.setBackground (color.green); this.setresizable (false); this.addeylistener (keymonitor baru ()); utas baru (new paintthread ()). start (); utas baru (gametime baru ()). start (); } private class gametime mengimplementasikan runnable {public void run () {while (true) {gametime ++; coba {thread.sleep (1000); } catch (InterruptedException e) {E.PrintStackTrace (); }}}}} kelas privat PaintThread mengimplementasikan runnable {public void run () {while (true) {revaint (); coba {thread.sleep (10); } catch (InterruptedException e) {E.PrintStackTrace (); }}}} public void update (grafik g) {if (offscreeNimage == null) {offscreeNimage = this.createImage (Game_Width, Game_Height); } Grafik goffscreen = offscreenimage.getGraphics (); Warna c = goffscreen.getColor (); goffscreen.setColor (color.green); goffscreen.fillrect (0, 0, Game_width, Game_height); goffscreen.setColor (c); cat (goffscreen); G.DrawImage (offscreenimage, 0, 0, null); } public void cat (grafik g) {color c = g.getColor (); g.setColor (color.gray); untuk (int i = 1; i <= 3; i ++) untuk (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 ("Jumlah hit:" + Count, 20, 40); G.DrawString ("Jumlah hit:" + MouseCount, 20, 60); G.DrawString ("Jumlah Run:" + Eclipsetime + "", 20, 80); G.DrawString ("Jumlah Run:" + Eclipsetime + "", 20, 80); G.DrawString ("Jumlah Run:" + Eclipsetime + "", 20, 80); G.DrawString ("Jumlah menjalankan:" + Gametime + "S", 20, 80); G.DrawString ("Jumlah Run:" + Eclipsetime + "", 20, 80); G.DrawString ("Jumlah menjalankan:" + Gametime + "S", 20, 80); G.DrawString ("Jumlah menjalankan:" + Gametime + "S", 20, 80); G.DrawString ("Jumlah menjalankan:" + Gametime + "S", 20, 80); G.DrawString ("Jumlah menjalankan:" + Gametime + "S", 20, 80); G.DrawString ("Jumlah menjalankan:" + Gametime + "S", 20, 80); G.DrawString ("Jumlah menjalankan:" + Gametime + "S", 20, 80); G.DrawString ("Jumlah menjalankan:" + Gametime + "S", 2 100); if (mouseCount> = 80) initmouseCount = 8; lain jika (mouseCount> = 50) initmouseCount = 6; lain jika (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; mouses.add (mouse baru (Game_width / 4 * (Temp % 3 + 1) - 70, Game_height / 4 * (Temp / 3 + 1) - 100, Temp, This)); } untuk (int i = 0; i <mouses.size (); i ++) {mouse m = mouses.get (i); M.Draw (G); }} public static void main (string [] args) {mouseClient km = new mouseClient (); km.launchframe (); } private class keymonitor memperluas keyAdapter {public void keyreleased (keyevent e) {System.out.println (e.getKeyCode ()); Count ++; untuk (int i = 0; i <mouses.size (); i ++) {if (mouses.get (i) .keyreleased (e)) break; }}}}Lampiran: Klik di sini untuk mengunduh kode contoh lengkap.
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.