บทความนี้อธิบายถึงรหัสมินิสแควร์ที่เคลื่อนไหวอย่างง่ายที่เขียนใน Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ภาพหน้าจอของเอฟเฟกต์การทำงานมีดังนี้:
ครั้งแรกที่ฉันเขียนอินเทอร์เฟซกราฟิกใน Java มันยังคงไร้เดียงสาเล็กน้อย - ทำงานหนักต่อไปในอนาคต! - รหัสเฉพาะมีดังนี้:
// เกมกล่องเล็ก ๆ โดย Alexyui // game.java โดย 1093710210@ hitimport javax.swing.*; นำเข้า java.awt.event.*; นำเข้า Java.awt.eom.*; นำเข้า Java.awt.*; นำเข้า Java.util. myFrame (); gameframe.settitle ("เกมกล่อง Java โดย Alexyui"); gameframe.setdefaultcloseoperation (jframe.exit_on_close); gameframe.setVisible (จริง); }} // คลาสเฟรม myFrame ขยาย jFrame {private int flag = 0; ได้รับการป้องกัน double x [] = {0,0,270,0,270}; ได้รับการป้องกัน double y [] = {0,0,0,270,270}; ผู้ชนะ Int ได้รับการป้องกัน [] = {0,0,0,0,0,0}; สาธารณะคงที่สุดท้าย int default_width = 317; สาธารณะคงที่สุดท้าย int default_height = 339; สาธารณะ myFrame () {myPanel a = new myPanel (); AddkeyListener (ใหม่ myKeyListener ()); this.add (a); setSize (default_width, default_height); } คลาส MyPanel ขยาย JPanel {Public MyPanel () {} Public Void Paint (Graphics G) {Super.Paint (G); graphics2d g2 = (graphics2d) g; rectangle2d rect1 = ใหม่ rectangle2d.double (x [1], y [1], 30f, 30f); rectangle2d rect2 = ใหม่ rectangle2d.double (x [2], y [2], 30f, 30f); rectangle2d rect3 = ใหม่ rectangle2d.double (x [3], y [3], 30f, 30f); rectangle2d rect4 = ใหม่ rectangle2d.double (x [4], y [4], 30f, 30f); // วาดสี่กล่องในกลาง G2.SetPaint (color.Red); G2.DrawRect (120,120,30,30); G2.DrawRect (120,150, 30,30); G2.DrawRect (150,120, 30,30); G2.DrawRect (150,150, 30,30); // เติมบล็อกในสี่มุม G2.SetPaint (color.blue); if (ผู้ชนะ [1] == 0) G2.fill (rect1); if (ผู้ชนะ [2] == 0) G2.fill (rect2); if (ผู้ชนะ [3] == 0) G2.fill (rect3); if (ผู้ชนะ [4] == 0) G2.fill (rect4); G2.SetPaint (color.Red); // Photos บล็อกที่เลือกเป็นสีแดงถ้า (Flag == 1) G2.fill (rect1); if (flag == 2) g2.fill (rect2); if (flag == 3) g2.fill (rect3); if (flag == 4) g2.fill (rect4); g2.setPaint (color.blue); if (ผู้ชนะ [1] == 1) G2.fill (rect1); if (ผู้ชนะ [2] == 1) G2.fill (rect2); if (ผู้ชนะ [3] == 1) G2.fill (rect3); if (ผู้ชนะ [4] == 1) G2.fill (rect4); G2.SetPaint (color.Red); ถ้า (ผู้ชนะ [1] == 1 && ผู้ชนะ [2] == 1 && ผู้ชนะ [3] == 1 && ผู้ชนะ [4] == 1) G2.DrawString ("Succes! คุณชนะ!", 100,75); // รักษาสีของเส้นขอบ G2.DrawRect (120,120, 30,30); G2.DrawRect (120,150, 30,30); G2.DrawRect (150,120, 30,30); G2.DrawRect (150,150, 30,30); ทาสีใหม่ (); }} คลาส MyKeyListener ใช้ keyListener {// เอาชนะโมฆะสาธารณะ keypressed (เหตุการณ์ KeyEvent) {int keycode = event.getKeyCode (); if (keycode == keyeVent.vk_1) {flag = 1;} ถ้า (keycode == keyeVent.vk_2) {flag = 2;} ถ้า (keycode == keyeVent.vk_3) {flag = 3; keyeVent.vk_up) {ย้าย (0, -30, ธง); win ();} ถ้า (keycode == keyeVent.vk_down) {ย้าย (0,30, ธง); win ();} ถ้า (keyevent.vk_left) {ย้าย (-30,0, ธง); keyeVent.vk_right) {ย้าย (30,0, ธง); win ();}} โมฆะสาธารณะเป็นโมฆะ (เหตุการณ์ KeyEvent) {} โมฆะสาธารณะ keytyped (เหตุการณ์ KeyEvent) {}} // ใช้เพื่อกำหนดกฎพื้นฐาน Boolean teller = false; x [mflag] += mx; y [mflag] += my; if (! (((x [flag]> = 0 && x [flag] <= 270) && (y [flag]> = 0 && y [flag] <= 270))) {x [mflag] -= mx; y [mflag] -= my; } สำหรับ (i = 1; i <5; i ++) {ถ้า (mflag! = i) ถ้า (x [mflag] == x [i] && y [mflag] == y [i]) teller = true; } if (teller == true) {x [mFlag] -= mx; y [mflag] -= my; }} // ใช้เพื่อกำหนดบล็อกที่ป้อนช่องว่างที่ผ่านการรับรอง Win () {int J1, J2; สำหรับ (j1 = 1; j1 <5; j1 ++) ถ้า ((x [j1] <= 150 && x [j1]> = 120) && (y [j1] <= 150 && y [j1]> = 120)) ผู้ชนะ [J1] = 1; สำหรับ (j2 = 1; j2 <5; j2 ++) ถ้า (! ((x [j2] <= 150 && x [j2]> = 120) && (y [j2] <= 150 && y [j2]> = 120)) ผู้ชนะ [J2] = 0;}}}}ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน