Este artículo describe el código de mini-juego de Simple Moving Square escrito en Java. Compártelo para su referencia, como sigue:
La captura de pantalla del efecto de ejecución es la siguiente:
La primera vez que escribí una interfaz gráfica en Java, todavía era un poco ingenua. . ¡Sigue trabajando duro en el futuro! ! El código específico es el siguiente:
// Little Box Game por Alexyui // Game.java por 1093710210@ hitimport javax.swing.*; Import java.awt.event.*; Import java.awt.geom.*; Import java.awt.*; Import java.util.*; Juego de clase pública {public static void main (string [] agrs) {myFrame Myframe (); GameFrame.settitle ("Java Box Game de Alexyui"); GameFrame.setDefaultCloseOperation (jframe.exit_on_close); GameFrame.SetVisible (verdadero); }} // Frame Clase MyFrame extiende jframe {private int flag = 0; Doble protegido x [] = {0,0,270,0,270}; Doble protegido y [] = {0,0,0,270,270}; Protected int ganador [] = {0,0,0,0,0,0}; public static final int default_width = 317; public static final int default_height = 339; public myFrame () {myPanel a = new myPanel (); addKeyListener (nuevo myKeylistener ()); this.add (a); setSize (default_width, default_height); } class myPanel extiende jpanel {public myPanel () {} public void Paint (Graphics g) {super.paint (g); Graphics2d G2 = (Graphics2d) G; Rectangle2d rect1 = nuevo rectangle2d.double (x [1], y [1], 30f, 30f); Rectangle2d rect2 = new rectangle2d.double (x [2], y [2], 30f, 30f); Rectangle2d rect3 = nuevo rectangle2d.double (x [3], y [3], 30f, 30f); Rectangle2d rect4 = new rectangle2d.double (x [4], y [4], 30f, 30f); // dibujar las cuatro cajas en el medio 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); // llenar los bloques en las cuatro esquinas g2.setPaint (color.blue); if (ganador [1] == 0) g2.fill (rect1); if (ganador [2] == 0) g2.fill (rect2); if (ganador [3] == 0) g2.fill (rect3); if (ganador [4] == 0) g2.fill (rect4); g2.setPaint (color.red); // fotos los bloques seleccionados en rojo if (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 (ganador [1] == 1) g2.fill (rect1); if (ganador [2] == 1) g2.fill (rect2); if (ganador [3] == 1) g2.fill (rect3); if (ganador [4] == 1) g2.fill (rect4); g2.setPaint (color.red); if (ganador [1] == 1 && ganador [2] == 1 && ganador [3] == 1 && ganador [4] == 1) G2.DrawString ("¡SCUCHES! ¡Ganó!", 100,75); // Mantenga el color del borde g2.Drawrect (120,120, 30,30); G2.Drawrect (120,150, 30,30); G2.Drawrect (150,120, 30,30); G2.Drawrect (150,150, 30,30); repintado (); }} La clase MyKeyListener implementa KeyListener {// Overide public void keyPressed (KeyEvent Event) {int keyCode = event.getKeyCode (); if (keyCode == keyEvent.vk_1) {flag = 1;} if (keyCode == keyEvent.vk_2) {flag = 2;} if (keyCode == keyEvent.vk_3) {flag = 3;} if (keyCode == keyEvent.vk_4) {4;} if (keyCode ==code KeyEvent.vk_up) {Move (0, -30, flag); win ();} if (keyCode == keyEvent.vk_down) {Move (0,30, flag); win ();} if (keyCode == keyEvent.vk_left) {Move (-30,0, flag); win ();} if (keyCode ==code KeyEvent.vk_right) {Move (30,0, flag); win ();}} public void KeyReleaded (KeyEvent Event) {} public void KeyTyped (KeyEvent Event) {}} // Usado para determinar las reglas básicas, mover el Bloque Void Move (int mx, int my, int mflag) {int i; cajero booleano = falso; 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; } para (i = 1; i <5; i ++) {if (mflag! = i) if (x [mflag] == x [i] && y [mflag] == y [i]) teller = true; } if (teller == true) {x [mflag] -= mx; y [mflag] -= my; }} // utilizado para determinar el bloque que ha ingresado el área calificada void win () {int j1, j2; para (j1 = 1; j1 <5; j1 ++) if ((x [j1] <= 150 && x [j1]> = 120) && (y [j1] <= 150 && y [j1]> = 120)) ganador [j1] = 1; para (j2 = 1; j2 <5; j2 ++) if (! ((x [j2] <= 150 && x [j2]> = 120) && (y [j2] <= 150 && y [j2]> = 120)) ganador [j2] = 0;}}}Espero que este artículo sea útil para la programación Java de todos.