บทความนี้อธิบายถึงเกมงูโลภที่ดำเนินการโดย Java Swing Framework แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
Java เป็นภาษาระดับสูงและเหมาะสำหรับพื้นหลังเมื่อสร้างเกม แต่คุณสามารถใช้มันเพื่อสร้างเกมได้ เมื่อคุณไม่มีอะไรทำคุณสามารถใช้มันเพื่อเขียนเกมเล็ก ๆ เพื่อฝึกฝนเพื่อป้องกันไม่ให้เกิดความชราก่อนวัยอันควร!
อย่าคุยกันอีกต่อไป
ต่อไปนี้เป็นงานที่ฉันฝึกฝนมาก่อน ฉันไม่กลัวทุกคนที่ทำเรื่องตลก ฉันใช้เวลาหนึ่งสัปดาห์ในการทำ
ซอร์สโค้ดมีดังนี้เพื่อให้ทุกคนเรียนรู้
ใช้ Java Swing JFrame JPanel Jbutton แน่นอนว่าคุณสามารถใช้ AWT
มาดูเอฟเฟกต์การวิ่ง:
รหัสเฉพาะ:
แพ็คเกจ tcs;/** * * * @author tx */นำเข้า java.awt.color; นำเข้า java.awt.container; นำเข้า java.awt.font; นำเข้า java.awt.graphics; นำเข้า Java.awt.event.keyevent; java.awt.event.mousevent; นำเข้า java.awt.event.mouselistener นำเข้า java.util.arraylist; นำเข้า java.util.arrays; นำเข้า java.util.collection; นำเข้า java.util.random; javax.swing.jbutton; นำเข้า Javax.swing.jframe; นำเข้า Javax.swing.jpanel; อาหารว่างคลาสสาธารณะขยาย JPanel ใช้ keyListener {สาธารณะ JButton BT = New JButton ("Start"); Public ArrayList <Sreasure> BW = New ArrayList <Sreasure> (); ร่างกายสาธารณะ [] b = ร่างใหม่ [5]; สถานะสตริงสาธารณะ = ""; Public ArrayList <Point> P = New ArrayList <Point> (); คะแนน int คงที่สาธารณะ; ขนมขบเคี้ยวสาธารณะ () {this.addkeyListener (นี่); Shengc (); } โมฆะสาธารณะ shengc () {สำหรับ (int i = 0; i <b.length; i ++) {b [i] = ร่างกายใหม่ (); b [i] .x = 10 - i * 10; b [i] .y = 150; }} สาธารณะ int x = 0, y = 0; สีโมฆะสาธารณะ (กราฟิก g) {super.paint (g); G.SetColor (สีใหม่ (165,41,10)); // วิธี RGB เพื่อกำหนดสี G.SetFont (ตัวอักษรใหม่ (Font.SANS_SERIF, FONT.BOLD, 20)); สำหรับ (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.sans_serif, font.bold, 20)); G.DrawString ("คะแนน:" + คะแนน, 30, 30); Paintjs (g); Paintbw (G); } โมฆะสาธารณะ PaintJS (กราฟิก g) {g.setColor (color.black); if (state.length ()> 1) {G.DrawString (สถานะ, 140, 200); }} โมฆะสาธารณะ PaintBw (กราฟิก G) {G.SetFont (ตัวอักษรใหม่ (Font.Sans_Serif, Font.Bold, 25)); G.SetColor (color.Red); สำหรับ (int i = 0; i <bw.size (); i ++) {g.drawstring ("o", bw.get (i) .x, bw.get (i) .y); }} บูลีนสาธารณะ yj () {ถ้า ((b [0] .x <400 && b [0] .x> 0) && (b [0] .y <400 && b [0] .y> 0)) {ส่งคืนเท็จ; } else {state = "game over"; กลับมาจริง; }} โมฆะสาธารณะ stmove () {if (pzjc () == false && (yj () == false)) {b [0] .speed = 8; // ที่นี่คุณสามารถเพิ่มความเร็วและเพิ่มความยาก B [0] .move (); p.add (จุดใหม่ (b [0] .x, b [0] .y, b [0] .fx)); if (p.size ()> b.length) {p.remove (p.get (0)); // system.out.println (p.size ()); }}} int สาธารณะ jl (ร่างกาย A, สมบัติ b) {int jl = 0; jl = (int) math.sqrt ((ax - bx) * (ax - bx) + (ay - by) * (ay - by)); กลับ JL; } // โมฆะสาธารณะที่ไร้ประโยชน์ชั่วคราว ssmove () {ถ้า (p.size ()> = b.length) {สำหรับ (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; }}} สุ่ม r = new random (); โมฆะสาธารณะ bzbw () {ถ้า (bw.size () <1) {สมบัติ S = สมบัติใหม่ (); sx = r.nextint (300) + 50; bw.add (s); }} โมฆะสาธารณะ bwxs () {ตัวจับเวลา t = ตัวจับเวลาใหม่ (); t.schedule (ใหม่ timertask () {public void run () {}}, 0, 8000); } บูลีนสาธารณะ pzjc () {สำหรับ (int i = 1; i <p.size (); i ++) {ถ้า (p.get (0) .equals (p.get (i))) {state = "game over"; กลับมาจริง; }} return false; } public void crush () {if (bw.size ()> 0) {ถ้า (p.get (0) .equals (p.get (i))) {state = "game over"; กลับมาจริง; }} 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] = ร่างกายใหม่ (); คะแนน += 10; }}} public void gameover () {mouselistener k = mouseadapter ใหม่ () {โมฆะสาธารณะ mouseclicked (MouseEvent E) {super.mouseclicked (e); state = ""; b = arrays.copyof (b, 5); p.clear (); Shengc (); คะแนน = 0; bt.setVisible (เท็จ); - if (state.length ()> 1) {this.add (bt); bt.setVisible (จริง); BT.SetBounds (150, 150, 100, 30); bt.addmouselistener (k); } if (bt.isvisible () == false) {this.remove (bt);} this.requestfocus (); } โมฆะสาธารณะ zmaction () {ตัวจับเวลาตัวจับเวลา = ตัวจับเวลาใหม่ (); timer.schedule (timertask ใหม่ () {public void run () {bzbw (); // สร้างสมบัติ stmove (); // การเคลื่อนไหวของหัวงู ssmove (); // การเคลื่อนไหวของร่างกายงู } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {jframe jf = new jFrame ("การทดสอบเกมงู Gulin.com-Greed"); JF.SetBounds (0, 0, 400, 400); jf.setVisible (จริง); JF.SetLayout (NULL); คอนเทนเนอร์ c = คอนเทนเนอร์ใหม่ (); c = jf.getContentPane (); C.SetBackground (สีขาว); jf.setDefaultCloseOperation (jframe.exit_on_close); ของว่าง S = ใหม่ของว่าง (); S.SetVisible (จริง); S.SetBounds (0, 0, 600, 600); S.SetLocation (0, 0); S.SetBackground (color.orange); jf.add (s); s.zmaction (); S.RequestFocus (); } โมฆะสาธารณะ KeyTyped (KeyEvent E) {} โมฆะสาธารณะคีย์กด (KeyEvent E) {int k = e.getKeyCode (); สวิตช์ (k) {case keyeVent.vk_up: if (b [0] .fx! = "sz" && b [0] .fx! = "xz") {b [0] .fx = "sz"; } หยุดพัก; Case KeyEvent.vk_down: ถ้า (b [0] .fx! = "sz" && b [0] .fx! = "xz") {b [0] .fx = "xz"; } หยุดพัก; Case KeyEvent.vk_left: ถ้า (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "xz"; } หยุดพัก; Case KeyEvent.vk_left: ถ้า (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "zz"; } หยุดพัก; Case KeyEvent.vk_right: ถ้า (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "yz"; } หยุดพัก; } repaint (); } เป็นโมฆะสาธารณะ Keylelesed (KeyEvent E) {}}ชั้นร่างกาย
แพ็คเกจ tcs; ร่างกายระดับสาธารณะ {public int x = 0; int สาธารณะ y = 0; ความเร็ว int สาธารณะ, สตริงส่วนตัว str, สตริงสาธารณะ fx; ร่างกายสาธารณะ () {fx = "yz";} int public int getx () {return x;} public void setx (int x) {this.x = x; getStr () {return str;} โมฆะสาธารณะ setstr (string str) {this.str = str;} โมฆะสาธารณะ sz () {this.y.y+=-ความเร็ว;} โมฆะสาธารณะ xz () {this.y+= ความเร็ว;} โมฆะสาธารณะ zz () {this.x+=-ความเร็ว; if (fx == "xz") {xz (); } if (fx == "sz") {sz (); } if (fx == "zz") {zz (); } if (fx == "yz") {yz (); -สมบัติ
แพ็คเกจ TCS; สมบัติชั้นเรียนสาธารณะ {public int x; public int y; String สาธารณะ Str;}ชั้นเรียน
แพ็คเกจ TCS; Public Class Point {public int x; public int y; สตริงสาธารณะ fx; จุดสาธารณะ (int x, int y, สตริง fx) {this.x = x; this.y = y; this.fx = fx;} บูลีนสาธารณะเท่ากับ (Object O) {if (O Instanceof Point) {จุด P = (จุด) o; if (px == this.x && p.y == this.y) {return true; }} if (o == สิ่งนี้) {return true;} if (o == null) {return false;} return false;}}สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน