Ich war in den Ferien untätig, also habe ich mehr als eine Woche ein Video gesehen, das von einem Meister Alwing aus der Baidu Java Bar gepostet wurde. Ich habe gelernt, eine Tetris in Java zu schreiben. Hier möchte ich ihm für seine Hilfe in Form des Veröffentlichungsquellcode und der notwendigen Erklärungen danken. Natürlich habe ich hier auch einige Änderungen vorgenommen, und die Programmoberfläche und Funktionen, die ich gemacht habe, sind nicht genau das gleiche wie sein.
Die Schnittstelle zum Ausführen des gesamten Programms lautet wie folgt:
Die im Programm enthaltenen Funktionen sind:
eins,
Das Design des gesamten Programms ist in der folgenden Abbildung mit insgesamt sieben Paketen dargestellt. Da das ursprüngliche Design des Programms darin bestand, eine Verbindung zur Datenbank herzustellen, um Benutzernamen und Bewertungen zu speichern, und mein Computer die Datenbanksoftware nicht installieren, habe ich Anpassungen an den Funktionen vorgenommen. Daher stimmen einige Paketnamen und Klassennamen nicht mit ihren eigenen Funktionen überein.
zwei,
Die wichtigste Schnittstellenprogrammierung im gesamten Programm wird von der Layer -Klasse im UI -Paket festgelegt. Es definiert eine Methode, um einen 64 mal 64 Pixel-Bildschnitt zu erstellen und mithilfe der Drawimage-Funktion in eine vorbestimmte Breite und Höhe zu dehnen und sie in den angegebenen Koordinaten anzuzeigen, wodurch ein Fenster wird. Jede Schicht ***. Java -Klasse im UI -Paket erbt die Ebenenklasse und wird verwendet, um jede Fensterschnittstelle zu implementieren, z. B. das Spielfenster (Layergame), Level -Fenster (Layerlevel), Score -Fenster (Layerpoint) usw. Zusätzlich bedeckte ich die Fensteroberfläche auch mit einer Ebene der durchscheinenden Bilder, wodurch eine "Häze" erreicht wird.
drei,
Die IMG -Klasse wird verwendet, um alle Bildobjekte zu deklarieren. Wenn ich das Grenzbildfenster erkläre, schrieb ich absichtlich den falschen Weg und erreichte so den randlosen Effekt.
Vier,
Die Zeichnung fallender Quadrate erfolgt auch durch Bildabschneiden.
Jeder Block verschiedener Farben hat die gleiche Größe, und jedes Mal, wenn Sie die Drawimage -Funktion verwenden, um Blöcke verschiedener Farben zu schneiden. Zunächst sollten Sie das Hauptspielfenster als Koordinatensystem mit der oberen linken Ecke als Ursprung betrachten. Das Hauptspielfenster hat eine Breite von 9 und eine Höhe von 16, sodass die Koordinaten der unteren rechten Ecke (15, 8) sein sollten, damit Sie die Koordinaten für das fallende Quadrat definieren können. Verwenden Sie dann die Liste <Punkt []>, um die Koordinaten jedes kleinen Quadrats im fallenden Block zu speichern.
Das fallende Quadrat sollte in den folgenden sieben Formen sein:
Dann sollten die anfänglichen Koordinaten, wenn die Blöcke 0 bis 6 frei fallen,:
TYPE_CONFIG=new ArrayList<Point[]>(7);TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(3,0),new Point(5,0),new Point(6,0)});TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(3,0),new Point(5,0),new Punkt (4,1)}); type_config.add (neuer Punkt [] {neuer Punkt (4,0), neuer Punkt (3,0), neuer Punkt (4,1)}; type_config.add (neuer Punkt [] {New Point (4,0), neuer Punkt (3,0), neuer Punkt (5,0), neuer Punkt (New Point (3,1)). Point(4,0),new Point(5,0),new Point(3,1),new Point(4,1)});TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(5,0),new Point(4,1),new Point(5,1)});TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(3,0),new Punkt (5,0), neuer Punkt (5,1)}); type_config.add (neuer Punkt [] {neuer Punkt (4,0), neuer Punkt (3,0), neuer Punkt (4,1), neuer Punkt (5,1)});Jedes Quadrat hat einen Mittelpunkt. Wenn sich das Quadrat dreht, dreht sich das Quadrat in der Mitte des Kreises 90 ° an diesem Mittelpunkt. Die Rotationsmethode lautet wie folgt:
fünf,
Die logische Kontrolle des Spiels liegt hauptsächlich in der GameService -Klasse, die erkennt, ob die Linie beseitigt werden kann, Linienbetrieb, Tastatur entsprechender Betrieb usw.
sechs,
Das Programm verwendet zwei zusätzliche JAR-Pakete, DOM4J-1.6.1.jar und jl1.0.1.jar. DOM4J-1.6.1.Jar wird verwendet, um XML-Dateien zu lesen. Im Konfigurationsordner befindet sich eine cfg.xml -Datei, in der die Größe und der Speicherort jedes Fensters festgelegt werden. Verwenden Sie DOM4J-1.6.1.jar im Programm, um die XML-Daten zu lesen, und konfigurieren Sie dann die Programmschnittstelle anhand dieser Daten. Solange der Wert in XML geändert wird, können die Größe und Koordinaten des Fensters geändert werden.
JL1.0.1.jar wird verwendet, um Hintergrundmusik zu spielen. Dies ist eine Funktion, die ich selbst hinzugefügt habe. Durch die Methode dieser JAR -Datei kann einfach die Funktion des Musikspiels implementiert werden. In der MP3 -Player -Klasse und in der Hauptklasse muss in der Hauptklasse ein neuer Thread erstellt werden. Spezifische Referenzmethode: Javaswing -Hintergrund -Wiedergabelmusik
Sieben,
Quellcode -Programm Download: Quellcode
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.