Estuve inactivo durante las vacaciones, así que pasé más de una semana viendo un video publicado por un maestro Alwing de Baidu Java Bar. Aprendí a escribir un Tetris en Java. Aquí me gustaría agradecerle por su ayuda en forma de código fuente editorial y las explicaciones necesarias. Por supuesto, también he realizado algunos cambios aquí, y la interfaz del programa y las funciones que hice no son exactamente las mismas que las suyas.
La interfaz para ejecutar todo el programa es la siguiente:
Las funciones incluidas en el programa son:
uno,
El diseño de todo el programa se muestra en la figura a continuación, con un total de siete paquetes. Debido a que el diseño original del programa era conectarse a la base de datos para guardar los nombres y puntajes de los usuarios, y mi computadora no pudo instalar el software de la base de datos, hice ajustes a las funciones. Por lo tanto, algunos nombres de paquetes y nombres de clase no coincidirán con sus propias funciones.
dos,
La programación de interfaz más importante en todo el programa está establecida por la clase de capa en el paquete de interfaz de usuario. Define un método para hacer una imagen de 64 por 64 píxeles corta y estirarla en un ancho y altura predeterminados utilizando la función DrawImage, y mostrarla en las coordenadas especificadas, convirtiéndose así en una ventana. Cada clase ***. La clase Java en el paquete de interfaz de usuario hereda la clase de capa y se utiliza para implementar cada interfaz de la ventana, como la ventana principal del juego (Layergame), la ventana de nivel (LayerLevel), la ventana de puntaje (punto de capa), etc. Además, también cubrí la superficie de la ventana con una capa de imágenes translucentes, logrando así un "haze".
tres,
La clase IMG se usa para declarar todos los objetos de imagen. Cuando declaro la ventana de la imagen del borde, deliberadamente escribí el camino equivocado, logrando así el efecto sin frontera.
Cuatro,
El dibujo de los cuadrados que caen también se realiza mediante corte de imágenes.
Cada bloque de diferentes colores es del mismo tamaño, y cada vez que usa la función Drawimage para cortar bloques de diferentes colores. En primer lugar, debes considerar la ventana del juego principal como un sistema de coordenadas con la esquina superior izquierda como origen. La ventana del juego principal tiene un ancho de 9 y una altura de 16, por lo que las coordenadas de la esquina inferior derecha deben ser (15, 8), para que pueda definir las coordenadas para el cuadrado que cae. Luego use la lista <punto []> para guardar las coordenadas de cada cuadrado pequeño en el bloque que cae.
El cuadrado que cae debe estar en las siguientes siete formas:
Luego, las coordenadas iniciales cuando los bloques de 0 a 6 caen libremente deben ser:
Type_config = new ArrayList <punto [punto []> (7); type_config.add (nuevo punto [] {nuevo punto (4,0), nuevo punto (3,0), nuevo punto (5,0), nuevo punto (6,0)}); type_config.add (nuevo punto [] {nuevo punto (4,0), nuevo punto (3,0), nuevo punto (5,0) Punto (4,1)}); type_config.add (nuevo punto [] {nuevo punto (4,0), nuevo punto (3,0), nuevo punto (4,1)}); type_config.add (nuevo punto [] {new Point (4,0), nuevo punto (3,0), nuevo punto (5,0), nuevo punto (3,1)}); typefig. Punto (4,0), nuevo punto (5,0), nuevo punto (3,1), nuevo punto (4,1)}); type_config.add (nuevo punto [] {nuevo punto (4,0), nuevo punto (5,0), nuevo punto (4,1), nuevo punto (5,1)}); type_config.add (nuevo punto [] {New Point (4,0), New Point (3,0); Punto (5,0), nuevo punto (5,1)}); type_config.add (nuevo punto [] {nuevo punto (4,0), nuevo punto (3,0), nuevo punto (4,1), nuevo punto (5,1)});Cada cuadrado tiene un punto central. Cuando el cuadrado gira, el cuadrado gira 90 ° en el centro del círculo en ese punto central. El método de rotación es el siguiente:
cinco,
El control lógico del juego se encuentra principalmente en la clase de servicio de juegos, que se da cuenta de la determinación de si la línea se puede eliminar, la operación de línea, la operación correspondiente del teclado, etc.
seis,
El programa utiliza dos paquetes JAR adicionales, DOM4J-1.6.1.JAR y JL1.0.1.JAR. DOM4J-1.6.1.JAR se usa para leer archivos XML. Hay un archivo CFG.XML en la carpeta de configuración, que establece el tamaño y la ubicación de cada ventana. Use DOM4J-1.6.1.JAR en el programa para leer los datos XML y luego configure la interfaz del programa en función de estos datos. Por lo tanto, siempre y cuando se cambie el valor en XML, se puede cambiar el tamaño y las coordenadas de la ventana.
JL1.0.1.JAR se usa para reproducir música de fondo. Esta es una función que agregué. A través del método proporcionado por este archivo JAR, la función de reproducir música se puede implementar simplemente. En la clase MP3Player y la clase principal, se debe crear un nuevo hilo en la clase principal. Método de referencia específico: música de reproducción de fondo de Javaswing
Siete,
Descarga del programa del código fuente: código fuente
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.