تصف هذه المقالة لعبة الثعبان الجشع التي تنفذها إطار Java Swing. شاركه للرجوع إليه ، على النحو التالي:
Java هي لغة عالية المستوى وهي مناسبة للخلفية عند صنع الألعاب ، ولكن يمكنك أيضًا استخدامها لصنع الألعاب. عندما لا يكون لديك ما تفعله ، يمكنك استخدامه لكتابة بعض الألعاب الصغيرة لتدرب على منع الشيخوخة المبكرة!
لا تتحدث بعد الآن
فيما يلي الأعمال التي مارستها من قبل. أنا لا أخاف من كل شخص يصنع النكات. استغرق الأمر مني أسبوعًا لصنعه.
رمز المصدر هو كما يلي أن يتعلم الجميع.
استخدم Java Swing Jframe jpanel jbutton بالطبع يمكنك أيضًا استخدام AWT
دعونا نلقي نظرة على تأثير الجري:
رمز محدد:
حزمة tcs ؛/** * * * * author tx */import java.awt.color ؛ import java.awt.container ؛ import java.awt.font ؛ import java.awt.graphics ؛ import java.awt.akyevent ؛ import java.awt.key. java.awt.event.mouseevent ؛ استيراد java.awt.event.mouselistener ؛ استيراد java.util.arraylist ؛ استيراد java.util.arrays ؛ استيراد java.util.collection ؛ import java.util.random javax.swing.jframe ؛ import javax.swing.jpanel ؛ يمتد الوجبة الخفيفة من الطبقة العامة jpanel تنفذ keylistener {public jbutton bt = new jbutton ("start") ؛ ArrayList public <Sevreure> bw = new ArrayList <Sevent> () ؛ الهيئة العامة [] ب = جسم جديد [5] ؛ سلسلة السلسلة العامة = "" ؛ ArrayList public <point> p = new ArrayList <Point> () ؛ النتيجة الثابتة العامة ؛ الوجبات الخفيفة العامة () {this.addKeyListener (this) ؛ Shengc () ؛ } public void Shengc () {for (int i = 0 ؛ i <b.length ؛ i ++) {b [i] = new Body () ؛ B [i] .x = 10 - i * 10 ؛ ب [i] .y = 150 ؛ }} public int x = 0 ، y = 0 ؛ Public Void Paint (Graphics G) {super.paint (g) ؛ G.SetColor (لون جديد (165،41،10)) لـ (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 new Font (font.sans_serif ، font.bold ، 20)) ؛ G.DrawString ("Score:" + Score ، 30 ، 30) ؛ paintjs (g) ؛ paintbw (g) ؛ } paintjs paintjs public void (Graphics g) {g.setColor (color.black) ؛ if (state.length ()> 1) {g.drawString (State ، 140 ، 200) ؛ }} Public void paintbw (Graphics g) {g.setfont (new font (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) ؛ }} public boolean yj () {if ((b [0] .x <400 && b [0] .x> 0) && (b [0] .y <400 && b [0] .y> 0)) {return false ؛ } آخر {state = "game over" ؛ العودة صحيح. }} public void 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 ()) ؛ }}} public int jl (الجسم A ، الكنز B) {int jl = 0 ؛ jl = (int) math.sqrt ((ax - bx) * (ax - bx) + (ay - by) * (ay - by)) ؛ إرجاع JL ؛ } // void public ssmove () {if (p.size ()> = B [i + 1] .x = p.get (i) .x ؛ B [i + 1] .y = p.get (i) .y ؛ }}} عشوائي r = جديد عشوائي () ؛ public void bzbw () {if (bw.size () <1) {treasure s = new Treasure () ؛ SX = R.NextInt (300) + 50 ؛ bw.add (s) ؛ }} public void bwxs () {timer t = new timer () ؛ T.Schedule (New TimerTask () {public void run () {}} ، 0 ، 8000) ؛ } boolean pzjc () {for (int i = 1 ؛ i <p.size () ؛ i ++) {if (p.get (0) .equals (p.get (i))) {state = "game over" ؛ العودة صحيح. }} إرجاع خطأ ؛ } public void crush () {if (bw.size ()> 0) {if (p.get (0) .equals (p.get (i))) {state = "game over" ؛ العودة صحيح. }} إرجاع خطأ ؛ } 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] = New Body () ؛ درجة += 10 ؛ }}} public void gameover () {mouselistener k = new mouseadapter () {public void mouseclicked (mouseevent e) {super.mouseclicked (e) ؛ State = "" ؛ b = arrays.copyof (b ، 5) ؛ p.clear () ؛ Shengc () ؛ النتيجة = 0 ؛ bt.setVisible (false) ؛ }} ؛ 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 () ؛ } public void zmacte () {timer timer = new timer () ؛ Timer.Schedule (New TimerTask () {public void run () {bzbw () ؛ // إنشاء الكنز stmove () ؛ // Snake Head Movement Ssmove () ؛ // Snake Movement Crush () ؛ // Collision Detection GameOver () ؛ repaint () ؛}} ، 10 ، 83) ؛ } public static void main (string [] args) {jframe jf = new JFrame ("wulin.com-greed snake test") ؛ JF.SetBounds (0 ، 0 ، 400 ، 400) ؛ JF.SetVisible (صواب) ؛ JF.SetLayout (NULL) ؛ حاوية C = حاوية جديدة () ؛ c = jf.getContentPane () ؛ C.SetBackground (color.white) ؛ 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 () ؛ } keytytyty public void (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" ؛ } استراحة؛ case keyevent.vk_down: if (b [0] .fx! = "sz" && b [0] .fx! = "xz") {b [0] .fx = "xz" ؛ } استراحة؛ case keyevent.vk_left: if (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "xz" ؛ } استراحة؛ case keyevent.vk_left: if (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "zz" ؛ } استراحة؛ case keyevent.vk_right: if (b [0] .fx! = "zz" && b [0] .fx! = "yz") {b [0] .fx = "yz" ؛ } استراحة؛ } repaint () ؛ } public void keyrelest (keyevent e) {}}فئة الجسم
حزمة tcs ؛ public class body {public int x = 0 ؛ public int y = 0 ؛ public int speed ؛ string public str ؛ public string fx ؛ public body () {fx = "yz" ؛ 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 () if (fx == "xz") {xz () ؛ } if (fx == "sz") {sz () ؛ } if (fx == "zz") {zz () ؛ } if (fx == "yz") {yz () ؛ }}}الكنوز
حزمة TCS ؛ كنز الطبقة العامة {public int x ؛ public int y ؛ public string str ؛}فئة النقطة
Package TCS ؛ Public Class Point {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 ؛} المساواة بين المنطقية العامة (كائن o) {if (o estanceof point) {point p = (point) o ؛ if (px == this.x && p.y == this.y) {return true ؛ }} if (o == this) {return true ؛} if (o == null) {return false ؛} false ؛لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.