国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java實現俄羅斯方塊

java實現俄羅斯方塊

2021-05-11 14:08葉應是葉 Java教程

這篇文章主要為大家詳細介紹了java實現俄羅斯方塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

假期閑著無事,就用一周多的時間看了百度java吧的一位大神(alwing)發布的視頻,學著用java寫了一個俄羅斯方塊,在此就以發布源代碼以及必要講解的形式來感謝他的幫助。當然我這里也是做了一些改動,做出來的程序界面以及功能沒有和他的完全一樣。

整個程序運行起來的界面如下所示:

java實現俄羅斯方塊

程序包含的功能有:

  • 俄羅斯方塊本身基本的游戲元素
  • 顯示下一輪出現的方塊、當前等級、分數、消行數等數值
  • 以值槽形式顯示當前等級到下一等級的距離
  • 左上角頭像以及背景圖片會隨著等級的升高而改變
  • 循環播放背景音樂

一、

整個程序的設計如下圖所示,共有七個包。因為程序原先的設計是會連接數據庫保存用戶名稱以及分數的,而我的電腦又因為數據庫軟件安裝失敗,所以功能上我做了調整。因此某些包名以及類名會與其本身功能不符。

java實現俄羅斯方塊

二、

整個程序中最重要的界面編程是由ui包中的layer類來建立的,它定義了一個方法使一張64乘64像素的圖片java實現俄羅斯方塊運用drawimage函數來切割、拉伸成預定的寬度和高度,并使之顯示在指定的坐標,從而成為一個窗口。 ui包中的各個layer***.java類都繼承了layer類,分別用來實現各個窗口界面,如游戲主窗口(layergame)、等級窗口(layerlevel)、分數窗口(layerpoint)等。此外我還在窗口表面覆蓋了一層半透明的圖片,從而實現了一種“朦朧感”。

三、

img類是用來聲明所有的圖片對象的,我在聲明邊框圖片window時,又故意寫錯路徑,從而實現了無邊框效果。

java實現俄羅斯方塊

四、

下落方塊的繪制也是采用圖片切割的方法

 java實現俄羅斯方塊

每個不同顏色的方塊都一樣大,每次使用drawimage函數來切割不同顏色的方塊。首先要把游戲主窗口看成是一個以左上角為原點的坐標系,游戲主窗口寬為9,高為16,則右下角的坐標應該是(15,8),這樣就可以為下落方塊定義坐標了。再采用list < point[] >來保存下落方塊中各個小方塊的坐標。

java實現俄羅斯方塊

下落方塊應該是如下七種形狀:

java實現俄羅斯方塊

則方塊0到方塊6自由下落時的初始坐標應是:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 point(4,1)});
type_config.add(new point[]{new point(4,0),new
 point(3,0),new point(5,0),new point(3,1)});
type_config.add(new point[]{new 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 point(5,0),new point(5,1)});
type_config.add(new point[]{new point(4,0),new
 point(3,0),new point(4,1),new point(5,1)});

每一個方塊都有一個中心點,當方塊旋轉時,方塊以該中心點位圓心進行90°的旋轉。 旋轉方法如下:

java實現俄羅斯方塊

五、

游戲的邏輯控制主要在gameservice類中,實現了判斷是否能消行,消行操作,鍵盤相應操作等

六、

程序中使用了dom4j-1.6.1.jar和jl1.0.1.jar兩個額外的jar包。 dom4j-1.6.1.jar用來讀取xml文件。在config文件夾中有個cfg.xml文件,當中設置了各個窗口的大小以及位置。在程序中使用dom4j-1.6.1.jar來讀取xml數據,然后根據這些數據來配置程序界面。因此只要改變了xml中的數值,就可以改變窗口的大小以及坐標。

java實現俄羅斯方塊

jl1.0.1.jar則是用來播放背景音樂的,這是我自己添加的功能,通過這個jar文件提供的方法,可以很簡單地實現播放音樂的功能,具體實現在mp3player類和main類中,需要在main類中新建一個線程。 具體參考方法:javaswing后臺播放音樂

七、

源代碼程序下載:源代碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/new_one_object/article/details/50606380

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线免费观看黄色 | 国产在线视频一区二区 | 国产电影一区二区 | 亚洲二区在线 | 日韩成人不卡 | 国产中文字幕在线观看 | 伊人电影综合网 | 精品伊人 | 黄片毛片一级 | 久久视频国产 | 国产一区二区三区免费在线观看 | 久久久国色 | 在线观看特色大片免费网站 | 国产精品无码久久久久 | 免费一级视频在线观看 | 五月婷婷综合网 | 国产精品免费一区二区三区四区 | 日韩色av | 国产成人精品一区二区在线 | 日日精品 | 日韩精品色 | 日韩中文字幕视频 | 91精品国产综合久久久久久漫画 | 久久久久久久久久久久久久免费看 | 亚洲电影免费 | 欧美自拍偷拍 | 国产精品剧情一区二区三区 | 老妇女av | 中文字幕免费看 | a在线观看免费视频 | 欧美在线小视频 | 麻豆乱码国产一区二区三区 | 午夜电影网 | 国产一区二区在线免费观看 | 精品成人在线视频 | 日韩中文字幕免费视频 | 激情久久网 | 国产三级黄色毛片 | 精品免费视频 | 亚洲精品免费看 | 免费精品视频 |