Fiquei ocioso durante as férias, então passei mais de uma semana assistindo a um vídeo postado por um mestre Alwing do bar Java Baidu. Aprendi a escrever um tetris em Java. Aqui, gostaria de agradecer a ele por sua ajuda na forma de publicar o código -fonte e as explicações necessárias. Obviamente, também fiz algumas mudanças aqui, e a interface e as funções do programa que fiz não são exatamente as mesmas que as dele.
A interface para executar todo o programa é a seguinte:
As funções incluídas no programa são:
um,
O design de todo o programa é mostrado na figura abaixo, com um total de sete pacotes. Como o design original do programa era conectar -se ao banco de dados para salvar nomes e pontuações de usuário e meu computador não instalou o software de banco de dados, fiz ajustes nas funções. Portanto, alguns nomes de pacotes e nomes de classe não correspondem às suas próprias funções.
dois,
A programação de interface mais importante em todo o programa é estabelecida pela classe de camada no pacote da interface do usuário. Ele define um método para criar um corte de imagem de 64 por 64 pixels e esticá-lo em uma largura e altura predeterminados usando a função Drawimage e exibi-lo nas coordenadas especificadas, tornando-se uma janela. Cada camada ***. A classe java no pacote da interface do usuário herda a classe da camada e é usada para implementar cada interface de janela, como a janela principal do jogo (camada de camada), janela nivelada (nível de camada), janela de pontuação (camada), etc. Além disso, eu também cobri a superfície da janela com uma camada de figuras translucentes, atingindo assim um "haze" ".
três,
A classe IMG é usada para declarar todos os objetos de imagem. Quando declaro a janela da imagem da fronteira, escrevi deliberadamente o caminho errado, alcançando assim o efeito sem fronteiras.
Quatro,
O desenho dos quadrados queda também é feito pelo corte da imagem.
Cada bloco de cores diferentes é do mesmo tamanho e cada vez que você usa a função Drawimage para cortar blocos de cores diferentes. Primeiro de tudo, você deve considerar a janela principal do jogo como um sistema de coordenadas com o canto superior esquerdo como a origem. A janela principal do jogo tem uma largura de 9 e uma altura de 16; portanto, as coordenadas do canto inferior direito devem ser (15, 8), para que você possa definir as coordenadas para o quadrado queda. Em seguida, use a lista <Point []> para salvar as coordenadas de cada pequeno quadrado no bloco queda.
O quadrado em queda deve estar nas sete formas seguintes:
Então as coordenadas iniciais quando os blocos 0 a 6 caem livremente devem ser:
Type_config = new ArrayList <Point []> (7); type_config.add (novo ponto [] {new Point (4,0), novo ponto (3,0), novo ponto (5,0), novo ponto (6,0)}); type_config.add (new), [] point (6,0)}); Ponto (4,1)}); type_config.add (novo ponto [] {new Point (4,0), novo ponto (3,0), novo ponto (4,1)}); type_config.add (novo ponto [] {new Point (4,0), new Point (3,0), novo (5,0), [] {Point (3,0), novo (3,0), novo (5,0), Ponto (4,0), novo ponto (5,0), novo ponto (3,1), novo ponto (4,1)}); type_config.add (novo ponto [] {new Point (4,0), novo ponto (5,0), novo ponto (4,1), novo (5,1)}; Ponto (5,0), novo ponto (5,1)}); type_config.add (novo ponto [] {new Point (4,0), novo ponto (3,0), novo ponto (4,1), novo ponto (5,1)});Cada quadrado tem um ponto central. Quando o quadrado gira, o quadrado gira 90 ° no centro do círculo naquele ponto central. O método de rotação é o seguinte:
cinco,
O controle lógico do jogo está principalmente na classe Games Service, que percebe a determinação de se a linha pode ser eliminada, operação de linha, operação correspondente do teclado, etc.
seis,
O programa usa dois pacotes de jar adicionais, DOM4J-1.6.1.JAR e JL1.0.1.JAR. DOM4J-1.6.1.jar é usado para ler arquivos XML. Existe um arquivo cfg.xml na pasta Config, que define o tamanho e o local de cada janela. Use DOM4J-1.6.1.jar no programa para ler os dados XML e configurar a interface do programa com base nesses dados. Portanto, desde que o valor no XML seja alterado, o tamanho e as coordenadas da janela podem ser alterados.
JL1.0.1.jar é usado para tocar música de fundo. Esta é uma função que eu me adicionei. Através do método fornecido por este arquivo JAR, a função de tocar música pode ser simplesmente implementada. Na classe Mp3Player e da classe principal, um novo thread precisa ser criado na classe principal. Método de referência específico: Javaswing Background Playback Music
Sete,
Download do programa do código -fonte: código -fonte
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.