具體如下:
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的淮陰網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
連連看的小源碼
package Lianliankan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener
{
JFrame mainFrame; //主面板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel; //子面板
JButton diamondsButton[][] = new JButton[6][5];//游戲按鈕數(shù)組
JButton exitButton,resetButton,newlyButton; //退出,重列,重新開始按鈕
JLabel fractionLable=new JLabel("0"); //分?jǐn)?shù)標(biāo)簽
JButton firstButton,secondButton; //
分別記錄兩次62616964757a686964616fe59b9ee7ad9431333335326239被選中的按鈕
int grid[][] = new int[8][7];//儲存游戲按鈕位置
static boolean pressInformation=false; //判斷是否有按鈕被選中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戲按鈕的位置坐標(biāo)
int i,j,k,n;//消除方法控制
代碼(code)是程序員用開發(fā)工具所支持的語言寫出來的源文件,是一組由字符、符號或信號碼元以離散形式表示信息的明確的規(guī)則體系。
對于字符和Unicode數(shù)據(jù)的位模式的定義,此模式代表特定字母、數(shù)字或符號(例如 0x20 代表一個空格,而 0x74 代表字符“t”)。一些數(shù)據(jù)類型每個字符使用一個字節(jié);每個字節(jié)可以具有 256 個不同的位模式中的一個模式。
在計算機中,字符由不同的位模式(ON 或 OFF)表示。每個字節(jié)有 8 位,這 8 位可以有 256 種不同的 ON 和 OFF 組合模式。對于使用 1 個字節(jié)存儲每個字符的程序,通過給每個位模式指派字符可表示最多 256 個不同的字符。2 個字節(jié)有 16 位,這 16 位可以有 65,536 種唯一的 ON 和 OFF 組合模式。使用 2 個字節(jié)表示每個字符的程序可表示最多 65,536 個字符。
單字節(jié)代碼頁是字符定義,這些字符映射到每個字節(jié)可能有的 256 種位模式中的每一種。代碼頁定義大小寫字符、數(shù)字、符號以及 !、@、#、% 等特殊字符的位模式。每種歐洲語言(如德語和西班牙語)都有各自的單字節(jié)代碼頁。
雖然用于表示 A 到 Z 拉丁字母表字符的位模式在所有的代碼頁中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代碼頁中卻不同。如果在運行不同代碼頁的計算機間交換數(shù)據(jù),必須將所有字符數(shù)據(jù)由發(fā)送計算機的代碼頁轉(zhuǎn)換為接收計算機的代碼頁。如果源數(shù)據(jù)中的擴展字符在接收計算機的代碼頁中未定義,那么數(shù)據(jù)將丟失。
如果某個數(shù)據(jù)庫為來自許多不同國家的客戶端提供服務(wù),則很難為該數(shù)據(jù)庫選擇這樣一種代碼頁,使其包括所有客戶端計算機所需的全部擴展字符。而且,在代碼頁間不停地轉(zhuǎn)換需要花費大量的處理時間。
4.1游戲的的思路、構(gòu)想
4.1.1游戲想法的產(chǎn)生
相信大家一定都在8位機機上玩過《冒險島》這款游戲,非常有趣味性。
游戲中玩家通過不斷的闖關(guān),來解救公主。在每個關(guān)都很很多的怪物阻擋著你,所以需要運用各種機關(guān)或者秘籍來殺死它們。殺死他們的同時還可以獲得各種獎勵,加生命,加血等,增加了游戲的趣味性。
如圖2所示:
這款《冒險島》游戲的實現(xiàn)相對于其他RPG或者網(wǎng)絡(luò)版手機游戲稍簡單一些,適合初學(xué)者作為練習(xí),所以我決定編寫一款類似的手機游戲。
由于之前對手機游戲的編程知識以及游戲的設(shè)計只有初步的了解,因此,我們在游戲的構(gòu)架和思路上經(jīng)歷了幾個階段。
這款《冒險島》游戲的實現(xiàn)相對于其他RPG或者網(wǎng)絡(luò)版手機游戲稍簡單一些,適合初學(xué)者作為練習(xí),所以我決定編寫一款類似的手機游戲。
由于之前對手機游戲的編程知識以及游戲的設(shè)計只有初步的了解,因此,我們在游戲的構(gòu)架和思路上經(jīng)歷了幾個階段。
4.1.2對游戲設(shè)計的初步認(rèn)識
剛開始我們只對J2ME有初步的了解。這時我們只是模仿之前在PC上看到的游戲,用語言把游戲的實現(xiàn)感性的描述為幾大部分:
游戲界面系統(tǒng):包括游戲開始界面;游戲開局界面;游戲運行界面;游戲結(jié)束界面。
游戲元素:菜單類;畫布類;人物類;排行榜類。
4.1.3模塊成型階段
在進一步熟悉了J2ME知識后,對框架做出了一些修改,逐步把游戲的基本功能確定。游戲依次進入加載界面;主菜單;游戲運行界面;游戲結(jié)束界面。
具體實現(xiàn)的功能為:
1.主菜單,有如下選項:
(1)開始游戲——進入游戲界面。
(2)聲音——設(shè)置聲音的有無選項。
(3)幫助——介紹游戲的玩法。
(4)排行榜——玩家所得分?jǐn)?shù)的排行榜。
(5)關(guān)于——用來顯示說明信息以及背景圖片。
2.游戲運行界面,包括:
游戲界面;目前游戲得分;游戲關(guān)數(shù);生命次數(shù);
3.游戲結(jié)束界面:游戲結(jié)束后,顯示一行說明信息,然后退回到菜單。
游戲的主要模塊為:
1.游戲主MIDlet(GameMIDlet)——對游戲生命周期的判斷;對畫布類的調(diào)用;管理游戲程序中各個屏幕之間的轉(zhuǎn)換。
2.游戲畫布(MyGame)——對游戲所用變量,常量的設(shè)定;游戲的初始化;游戲中精靈運動軌跡的控制;精靈與磚塊的碰撞檢測以及磚塊狀態(tài)的控制;游戲中各關(guān)卡的基本設(shè)定;游戲中對按鍵狀態(tài)的處理。
3.菜單類——游戲中菜單事件的處理。
4.GameOgre類——游戲中怪物的類。
5.GamePlayer類——玩家控制的精靈類。
6.GameRMS類——用于實現(xiàn)分?jǐn)?shù)排行榜。
7.PlayMusic類——用于實現(xiàn)音樂的播放。
8.MySet類——聲音大小的設(shè)置。
4.2 程序的類結(jié)構(gòu)
程序一共有8個主要類,其中菜單類負責(zé)各個屏幕的切換。程序的類結(jié)構(gòu)如圖3所示:
4.3 游戲的流程圖
進入游戲菜單。初始情況下,游戲菜單有5個選項,它們分別是開始游戲、游戲說明和排行榜、設(shè)置、關(guān)于。選擇開始新游戲則進入游戲,在游戲中如果按下非游戲鍵則中斷游戲返回菜單,此時菜單中增加了一個繼續(xù)游戲的選項,可以返回游戲也可以重新開始新的游戲。在菜單中選擇游戲說明或者高分記錄,則進入相應(yīng)的屏幕,他們都能用“后退”軟鍵返回菜單。菜單中的退出選項用于退出程序。游戲的流程如圖4所示:
4.4.1主類GameMIDlet的實現(xiàn)
MIDlet是最核心的類。MIDlet程序有三種狀態(tài):
1.暫停狀態(tài)
2.運行狀態(tài)
3.銷毀狀態(tài)
J2ME程序都是從MIDlet類開始執(zhí)行,系統(tǒng)在執(zhí)行MIDlet程序時,首先構(gòu)造一個MIDlet類型的對象,然后使程序進入到暫停狀態(tài),按照生命周期的規(guī)定,系統(tǒng)會自動調(diào)用MIDlet對象的startApp方法使程序進入到運行狀態(tài),開始程序的執(zhí)行。
下圖是運行時顯示的畫布對象:
首先,先要創(chuàng)建MIDlet類型的對象,下面我們來看對象的構(gòu)造方法:
//主程序構(gòu)造方法
public GameMIDlet()
{
rs = null;
RecordName = “GameRMS”;
GameMenu.display = Display.getDisplay(this) ;
GameMenu.midlet = this;
}
java
開發(fā)語言
oppo手機型號及價格
精選推薦
廣告
JAVA基于J2ME的手機游戲開發(fā)(文檔+源代碼).zip
0下載·0評論
2022年1月27日
JAVA基于J2ME的手機游戲開發(fā)免費
717閱讀·0評論·0點贊
2022年8月23日
JAVA五子棋手機網(wǎng)絡(luò)對戰(zhàn)游戲的設(shè)計與實現(xiàn)(源代碼+論文)
568閱讀·2評論·0點贊
2022年12月5日
J2ME手機游戲引擎程序結(jié)構(gòu)簡述
170閱讀·0評論·0點贊
2021年9月12日
最新45款Java手機游戲開發(fā)源代碼免費下載
10下載·0評論
2019年3月4日
經(jīng)典50個Java手機游戲源碼.7z
3下載·0評論
2022年7月8日
無敵版游戲下載
精選推薦
廣告
java手機小游戲源碼_Java手機版數(shù)獨小游戲(J2me)JAVA游戲源碼下載
435閱讀·0評論·0點贊
2021年3月14日
java 300行代碼 冒險闖關(guān)小游戲(代碼+講解)
2637閱讀·1評論·6點贊
2022年9月9日
java俄羅斯方塊代碼_【俄羅斯方塊java】分享一個Java寫的俄羅斯方塊源碼 算法簡單(300行) 注釋詳細!...
304閱讀·0評論·0點贊
2021年3月5日
java小游戲源碼_分享幾款java小游戲源碼
4921閱讀·0評論·4點贊
2021年3月5日
java手機游戲開發(fā)如何_用JAVA開發(fā)手機游戲需要如何構(gòu)建開發(fā)環(huán)境?
1209閱讀·0評論·0點贊
2021年2月26日
《精通Java手機游戲與應(yīng)用程序設(shè)計》源碼
35閱讀·0評論·0點贊
2022年3月24日
java怎么制作游戲,看完這篇徹底明白了
4803閱讀·0評論·2點贊
2021年6月29日
泡泡堂代碼 JAVA_Java手機游戲泡泡堂源碼
566閱讀·0評論·1點贊
2021年3月14日
十款經(jīng)典游戲的Java版本(開源)
19.0W閱讀·95評論·214點贊
2014年12月7日
飛翔的小鳥--Java小游戲?qū)崙?zhàn)(代碼完整)
1.1W閱讀·13評論·50點贊
2021年4月5日
Vue——獲取后端json數(shù)據(jù)中的URL并通過按鈕跳轉(zhuǎn)到此URL
1683閱讀·4評論·0點贊
2021年2月5日
java安卓游戲源碼下載_77個安卓游戲 android源碼
801閱讀·0評論·0點贊
2021年3月15日
去首頁
看看更多熱門內(nèi)容
表1. CheckerDrag.java
// CheckerDrag.javaimport java.awt.*;import java.awt.event.*;public class CheckerDrag extends java.applet.Applet{ // Dimension of checkerboard square. // 棋盤上每個小方格的尺寸 final static int SQUAREDIM = 40; // Dimension of checkerboard -- includes black outline. // 棋盤的尺寸 – 包括黑色的輪廓線 final static int BOARDDIM = 8 * SQUAREDIM + 2; // Dimension of checker -- 3/4 the dimension of a square. // 棋子的尺寸 – 方格尺寸的3/4 final static int CHECKERDIM = 3 * SQUAREDIM / 4; // Square colors are dark green or white. // 方格的顏色為深綠色或者白色 final static Color darkGreen = new Color (0, 128, 0); // Dragging flag -- set to true when user presses mouse button over checker // and cleared to false when user releases mouse button. // 拖動標(biāo)記 --當(dāng)用戶在棋子上按下鼠標(biāo)按鍵時設(shè)為true, // 釋放鼠標(biāo)按鍵時設(shè)為false boolean inDrag = false; // Left coordinate of checkerboard's upper-left corner. // 棋盤左上角的左方向坐標(biāo) int boardx; // Top coordinate of checkerboard's upper-left corner. //棋盤左上角的上方向坐標(biāo) int boardy; // Left coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原點(左上角)的左方向坐標(biāo) int ox; // Top coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原點(左上角)的上方向坐標(biāo) int oy; // Left displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按鍵時的鼠標(biāo)坐標(biāo)與棋子矩形原點之間的左方向位移 int relx; // Top displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按鍵時的鼠標(biāo)坐標(biāo)與棋子矩形原點之間的上方向位移 int rely; // Width of applet drawing area. // applet繪圖區(qū)域的寬度 int width; // Height of applet drawing area. // applet繪圖區(qū)域的高度 int height; // Image buffer. // 圖像緩沖 Image imBuffer; // Graphics context associated with image buffer. // 圖像緩沖相關(guān)聯(lián)的圖形背景 Graphics imG; public void init () { // Obtain the size of the applet's drawing area. // 獲取applet繪圖區(qū)域的尺寸 width = getSize ().width; height = getSize ().height; // Create image buffer. // 創(chuàng)建圖像緩沖 imBuffer = createImage (width, height); // Retrieve graphics context associated with image buffer. // 取出圖像緩沖相關(guān)聯(lián)的圖形背景 imG = imBuffer.getGraphics (); // Initialize checkerboard's origin, so that board is centered. // 初始化棋盤的原點,使棋盤在屏幕上居中 boardx = (width - BOARDDIM) / 2 + 1; boardy = (height - BOARDDIM) / 2 + 1; // Initialize checker's rectangle's starting origin so that checker is // centered in the square located in the top row and second column from // the left. // 初始化棋子矩形的起始原點,使得棋子在第一行左數(shù)第二列的方格里居中 ox = boardx + SQUAREDIM + (SQUAREDIM - CHECKERDIM) / 2 + 1; oy = boardy + (SQUAREDIM - CHECKERDIM) / 2 + 1; // Attach a mouse listener to the applet. That listener listens for // mouse-button press and mouse-button release events. // 向applet添加一個用來監(jiān)聽鼠標(biāo)按鍵的按下和釋放事件的鼠標(biāo)監(jiān)聽器 addMouseListener (new MouseAdapter () { public void mousePressed (MouseEvent e) { // Obtain mouse coordinates at time of press. // 獲取按鍵時的鼠標(biāo)坐標(biāo) int x = e.getX (); int y = e.getY (); // If mouse is over draggable checker at time // of press (i.e., contains (x, y) returns // true), save distance between current mouse // coordinates and draggable checker origin // (which will always be positive) and set drag // flag to true (to indicate drag in progress). // 在按鍵時如果鼠標(biāo)位于可拖動的棋子上方 // (也就是contains (x, y)返回true),則保存當(dāng)前 // 鼠標(biāo)坐標(biāo)與棋子的原點之間的距離(始終為正值)并且 // 將拖動標(biāo)志設(shè)為true(用來表明正處在拖動過程中) if (contains (x, y)) { relx = x - ox; rely = y - oy; inDrag = true; } } boolean contains (int x, int y) { // Calculate center of draggable checker. // 計算棋子的中心位置 int cox = ox + CHECKERDIM / 2; int coy = oy + CHECKERDIM / 2; // Return true if (x, y) locates with bounds // of draggable checker. CHECKERDIM / 2 is the // radius. // 如果(x, y)仍處于棋子范圍內(nèi)則返回true // CHECKERDIM / 2為半徑 return (cox - x) * (cox - x) + (coy - y) * (coy - y) CHECKERDIM / 2 * CHECKERDIM / 2; } public void mouseReleased (MouseEvent e) { // When mouse is released, clear inDrag (to // indicate no drag in progress) if inDrag is // already set. // 當(dāng)鼠標(biāo)按鍵被釋放時,如果inDrag已經(jīng)為true, // 則將其置為false(用來表明不在拖動過程中) if (inDrag) inDrag = false; } }); // Attach a mouse motion listener to the applet. That listener listens // for mouse drag events. //向applet添加一個用來監(jiān)聽鼠標(biāo)拖動事件的鼠標(biāo)運動監(jiān)聽器 addMouseMotionListener (new MouseMotionAdapter () { public void mouseDragged (MouseEvent e) { if (inDrag) { // Calculate draggable checker's new // origin (the upper-left corner of // the checker rectangle). // 計算棋子新的原點(棋子矩形的左上角) int tmpox = e.getX () - relx; int tmpoy = e.getY () - rely; // If the checker is not being moved // (at least partly) off board, // assign the previously calculated // origin (tmpox, tmpoy) as the // permanent origin (ox, oy), and // redraw the display area (with the // draggable checker at the new // coordinates). // 如果棋子(至少是棋子的一部分)沒有被 // 移出棋盤,則將之前計算的原點 // (tmpox, tmpoy)賦值給永久性的原點(ox, oy), // 并且刷新顯示區(qū)域(此時的棋子已經(jīng)位于新坐標(biāo)上) if (tmpox boardx tmpoy boardy tmpox + CHECKERDIM boardx + BOARDDIM tmpoy + CHECKERDIM boardy + BOARDDIM) { ox = tmpox; oy = tmpoy; repaint (); } } } }); } public void paint (Graphics g) { // Paint the checkerboard over which the checker will be dragged. // 在棋子將要被拖動的位置上繪制棋盤 paintCheckerBoard (imG, boardx, boardy); // Paint the checker that will be dragged. // 繪制即將被拖動的棋子 paintChecker (imG, ox, oy); // Draw contents of image buffer. // 繪制圖像緩沖的內(nèi)容 g.drawImage (imBuffer, 0, 0, this); } void paintChecker (Graphics g, int x, int y) { // Set checker shadow color. // 設(shè)置棋子陰影的顏色 g.setColor (Color.black); // Paint checker shadow. // 繪制棋子的陰影 g.fillOval (x, y, CHECKERDIM, CHECKERDIM); // Set checker color. // 設(shè)置棋子顏色 g.setColor (Color.red); // Paint checker. // 繪制棋子 g.fillOval (x, y, CHECKERDIM - CHECKERDIM / 13, CHECKERDIM - CHECKERDIM / 13); } void paintCheckerBoard (Graphics g, int x, int y) { // Paint checkerboard outline. // 繪制棋盤輪廓線 g.setColor (Color.black); g.drawRect (x, y, 8 * SQUAREDIM + 1, 8 * SQUAREDIM + 1); // Paint checkerboard. // 繪制棋盤 for (int row = 0; row 8; row++) { g.setColor (((row 1) != 0) ? darkGreen : Color.white); for (int col = 0; col 8; col++) { g.fillRect (x + 1 + col * SQUAREDIM, y + 1 + row * SQUAREDIM, SQUAREDIM, SQUAREDIM); g.setColor ((g.getColor () == darkGreen) ? Color.white : darkGreen); } } } // The AWT invokes the update() method in response to the repaint() method // calls that are made as a checker is dragged. The default implementation // of this method, which is inherited from the Container class, clears the // applet's drawing area to the background color prior to calling paint(). // This clearing followed by drawing causes flicker. CheckerDrag overrides // update() to prevent the background from being cleared, which eliminates // the flicker. // AWT調(diào)用了update()方法來響應(yīng)拖動棋子時所調(diào)用的repaint()方法。該方法從 // Container類繼承的默認(rèn)實現(xiàn)會在調(diào)用paint()之前,將applet的繪圖區(qū)域清除 // 為背景色,這種繪制之后的清除就導(dǎo)致了閃爍。CheckerDrag重寫了update()來 // 防止背景被清除,從而消除了閃爍。 public void update (Graphics g) { paint (g); }}
java能寫大型游戲么。
首先,這個答案是肯定的,java也能開發(fā)大型的桌面端游戲,比如非常出名的沙盒游戲:我的世界。就是使用java語言開發(fā)的。
其次,Android就是java開發(fā)的,Android環(huán)境下有多少游戲就不需要我一一細數(shù)了吧。
再次,桌面端的游戲,尤其是大型游戲,最終使用java開發(fā)的并不多見,究其原因,一是因為java的內(nèi)存管理策略,自動化內(nèi)存管理,在內(nèi)存效率上并不高,二是其虛擬機機制,對于硬件環(huán)境的調(diào)用隔了一層。
希望對你有幫助。
文章名稱:java手游服務(wù)端代碼 java手游服務(wù)端代碼大全
網(wǎng)站路徑:http://chinadenli.net/article4/dogeooe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)站制作、云服務(wù)器、網(wǎng)站維護、網(wǎng)頁設(shè)計公司、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)