Artikel ini menjelaskan permainan ular serakah yang diimplementasikan oleh Java Swing Framework. Bagikan untuk referensi Anda, sebagai berikut:
Java adalah bahasa tingkat tinggi dan cocok untuk latar belakang saat membuat game, tetapi Anda juga dapat menggunakannya untuk membuat game. Ketika Anda tidak ada hubungannya, Anda dapat menggunakannya untuk menulis beberapa permainan kecil untuk berlatih untuk mencegah penuaan dini haha!
Jangan bicara lagi
Berikut ini adalah karya -karya yang saya praktikkan sebelumnya. Saya tidak takut semua orang membuat lelucon. Butuh waktu seminggu untuk membuatnya.
Kode sumber adalah sebagai berikut untuk dipelajari semua orang.
Gunakan java swing jframe jpanel jbutton tentu saja Anda juga dapat menggunakan awt
Mari kita lihat efek berjalan:
Kode Khusus:
Paket tcs;/** * * * * * @author tx */impor java.awt.color; import java.awt.container; impor java.awt.font; java.awt.graphics; import java.awt.keyevent; impor java.awt.event.event. java.awt.event.mouseevent; impor java.awt.event.mouselistener; impor java.util.arraylist; impor java.util.arrays; impor java.util.collection; impor java.util.random; impor java.util.timer; impor java.util.random; impor java.util.timer; impor java.util. javax.swing.jbutton; impor javax.swing.jframe; import javax.swing.jpanel; camilan kelas publik memperluas jpanel mengimplementasikan keylistener {public jbutton bt = new jbutton ("start"); Public ArrayList <Reasure> bw = ArrayList baru <Treasure> (); Badan Publik [] B = Badan Baru [5]; state string publik = ""; Public ArrayList <Point> p = ArrayList baru <Point> (); skor int statis publik; public snack () {this.addKeyListener (this); shengc (); } public void shengc () {for (int i = 0; i <b.length; i ++) {b [i] = body baru (); b [i] .x = 10 - i * 10; b [i] .y = 150; }} public int x = 0, y = 0; public void cat (grafik g) {super.paint (g); g.setColor (warna baru (165,41,10)); // metode rgb untuk mendefinisikan warna g.setfont (font baru (font.sans_serif, font.bold, 20)); untuk (int i = 0; i <b.length; i ++) {body z1 = b [i]; g.drawstring ("o", b [i] .x, b [i] .y); } g.setColor (color.blue); g.setfont (font baru (font.sans_serif, font.bold, 20)); G.DrawString ("Skor:" + Skor, 30, 30); cat (g); PaintBW (G); } public void paintJS (grafik g) {g.setColor (color.black); if (state.length ()> 1) {g.drawstring (state, 140, 200); }} public void paintBW (grafik g) {g.setFont (font baru (font.sans_serif, font.bold, 25)); G.SetColor (Color.Red); untuk (int i = 0; i <bw.size (); i ++) {g.drawstring ("o", bw.get (i) .x, bw.get (i) .y); }} public boolean yj () {if ((b [0] .x <400 && b [0] .x> 0) && (b [0] .y <400 && b [0] .y> 0)) {return false; } else {state = "Game over"; Kembali Benar; }} public void stmove () {if (pzjc () == false && (yj () == false)) {b [0] .speed = 8; // di sini Anda dapat meningkatkan kecepatan dan meningkatkan kesulitan B [0] .move (); p.add (titik baru (b [0] .x, b [0] .y, b [0] .fx)); if (p.size ()> b.length) {p.remove (p.get (0)); // System.out.println (p.size ()); }}} public int jl (tubuh A, harta b) {int jl = 0; jl = (int) math.sqrt ((ax - bx) * (ax - bx) + (ay - oleh) * (ay - oleh)); mengembalikan JL; } // untuk sementara waktu tidak berguna public void ssmove () {if (p.size ()> = b.length) {for (int i = 0; i <b.length - 1; i ++) {b [i+1] .fx = p.get (i) .fx; b [i + 1] .x = p.get (i) .x; b [i + 1] .y = p.get (i) .y; }}} Acak r = acak baru (); public void bzbw () {if (bw.size () <1) {harta karun s = new hartaure (); sx = r.nextint (300) + 50; bw.add (s); }} public void bwxs () {timer t = timer baru (); t.schedule (new timertask () {public void run () {}}, 0, 8000); } public boolean pzjc () {for (int i = 1; i <p.size (); i ++) {if (p.get (0) .equals (p.get (i))) {state = "Game over"; Kembali Benar; }} return false; } public void crush () {if (bw.size ()> 0) {if (p.get (0) .equals (p.get (i))) {state = "game over"; Kembali Benar; }} return false; } public void crush () {if (bw.size ()> 0) {if (jl (b [0], bw.get (0)) <8) {bw.remove (0); b = arrays.copyof (b, b.length + 1); b [b.length - 1] = body baru (); skor += 10; }}} public void GameOver () {mouseListener k = mouseadapter baru () {public void mouseclicked (mouseEvent e) {super.mouseClicked (e); state = ""; b = arrays.copyof (b, 5); p.clear (); shengc (); skor = 0; bt.setVisible (false); }}; if (state.length ()> 1) {this.add (bt); bt.setVisible (true); bt.setbounds (150, 150, 100, 30); bt.addmouseListener (k); } if (bt.isvisible () == false) {this.remove (bt);} this.RequestFocus (); } public void zMaction () {timer timer = timer baru (); timer.schedule (timerKask baru () {public void run () {bzbw (); // menghasilkan harta karun stmove (); // snake head movement ssmove (); // ular body movement crush (); // collision detection gameover (); ulang ();}}, 10, 83); } public static void main (string [] args) {jFrame jf = new jframe ("wulin.com-greed snake game test"); JF.SetBounds (0, 0, 400, 400); jf.setVisible (true); jf.setlayout (null); Wadah C = wadah baru (); c = jf.getContentPane (); C.SetBackground (Color.White); jf.setDefaultCloseOperation (jframe.exit_on_close); Snack s = snack baru (); s.setVisible (true); s.setbounds (0, 0, 600, 600); s.setlocation (0, 0); S.SetBackground (Color.ORANGE); jf.add (s); s.zmaction (); S.RequestFocus (); } public void keyTyped (keyevent e) {} public void keypressed (keyevent e) {int k = e.getKeyCode (); switch (k) {case keyevent.vk_up: if (b [0] .fx! = "sz" && b [0] .fx! = "xz") {b [0] .fx = "sz"; } merusak; case keyevent.vk_down: if (b [0] .fx! = "sz" && b [0] .fx! = "xz") {b [0] .fx = "xz"; } merusak; case keyevent.vk_left: if (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "xz"; } merusak; case keyevent.vk_left: if (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "zz"; } merusak; case keyevent.vk_right: if (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "yz"; } merusak; } repaint (); } public void keyreleased (keyevent e) {}}Kelas tubuh
Paket tcs; badan kelas publik {public int x = 0; public int y = 0; speed int public; string pribadi str string; public string fx; badan publik () {fx = "yz";} int getx public () {return x;} public void setx (int x) {this.x = x;} public int gety () {return y; getStr () {return str;} public void setStr (string str) {this.str = str;} public void sz () {this.y+=-speed;} public void xz () {this.y+= speed;} public void zz () {this.x+=-speed;} public void yz yz () {this if (fx == "xz") {xz (); } if (fx == "sz") {sz (); } if (fx == "zz") {zz (); } if (fx == "yz") {yz (); }}}Harta karun
paket tcs; harta public kelas {public int x; public int y; public string stred;}kelas titik
paket tcs; titik kelas publik {public int x; public int y; public string fx; public point (int x, int y, string fx) {this.x = x; this.y = y; this.fx = fx;} public boolean setara (objek o) {if (o instanceof point) {point p = (point) o; if (px == this.x && p.y == this.y) {return true; }} if (o == ini) {return true;} if (o == null) {return false;} return false;}}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.