老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

java打槍源代碼 JAVA源代碼和源文件

誰有java游戲源碼,給我發過來‘?

注意:源代碼僅供個人作學習研究時的參考,不得在程序制作中直接抄錄。

我們提供的服務有:網站制作、成都網站制作、微信公眾號開發、網站優化、網站認證、密山ssl等。為近千家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的密山網站制作公司

源代碼一共兩個文件:Mine.java,MGame.java,另外還有一些圖片。

在JBuilder下建立一個新的工程,將兩個源文件復制到工程目錄下的src\mine目錄中,將所有圖片復制到src\images目錄中就可以了。

要點分析

數據結構

首先要說明一下用來存放地雷信息的數組grid。

grid是一個二維數組,第一位對應表格的行,第二位對應表格的列,比如grid[y][x]表示第y行第x列。每個字節的含義分三段:0-9表示已經挖開;10-19表示仍然埋藏;20-29表示做了標記。每段中:0-8表示周圍的地雷數量;9表示是地雷。

newGame()函數

這是用于開始一個新游戲的。

由于每次地雷的埋放地是隨機的,應次開始新游戲之前先要生成新的地雷信息。

第一步是初始化grid,將所有內容都置成10,因為一開始所有格子都是埋藏的。

for(i=0;iHeight; i++)

{

for(j=0; jWidth; j++)

grid[j] = 10;

}

第二步是隨機產生地雷。當然了,已經產生過地雷的地方要避開。

for(i=0; iMINECOUNT; i++)

{

while(true)

{

x = Math.abs(rand.nextInt()) % Width;

y = Math.abs(rand.nextInt()) % Height;

if (grid[y][x] != 19)

{

grid[y][x] = 19;

break;

}

}

}

最后就是無雷處計算周圍的雷數了。怎么計算?一個一個加就是了。

挖雷與做標記

在看一下按鍵響應函數keyPressed(int kcode),按1鍵是挖開動作。

前半部分表示如果當前焦點在一個埋藏格(值介于10到19之間),那么將其值減10,表示現在挖開。當然如果地下不是雷而且周圍沒有雷(值等于0)那么需要自動展開,這里調用了Expand(),(selx,sely)是當前焦點的表格坐標。

后半部分表示如果當前焦點在一個已經挖開的格子上(值小于10),那么就調用SafeExp()來自動挖開周圍未挖的格子。

按3鍵是做標記動作。如果當前格是埋藏格,就做上標記(值加10);如果當前格已經做了標記,那么就去掉標記(值減10)。

自動展開

Expand()是一個嵌套函數,他的作用是將周圍不含地雷的格子周圍全部挖開,如果挖開的部分中也有周圍不含地雷的格子,那么對那些格子也重復前面的操作,直到把相關的格子都挖開。挖的順序是左上、上、右上、左、右、左下、下、右下,如果遇到一個周圍不含地雷的格子(值為0)那么馬上嵌套調用Expand()對那個格子進行處理。

SafeExp()是一個自動挖開周圍未挖格子的函數。當然要實現這個功能是有條件的,就是周圍做了標記的格子數量必須等于當前格所標的數字,也就是說玩家把周圍所有的地雷都標記了(不管是否標錯)。函數中第一個部分就是做以上條件的判斷。

第二部分是把周圍埋藏的格子挖開。但是由于玩家的錯誤可能標記了沒有地雷的格子,而把有地雷的格子漏標了,所以先要檢查一下沒做標而有地雷的格子和做錯標記的格子。如果沒有這些錯誤,那么可以安全的翻開了,同時也要檢查是否挖到周圍不含雷的格子,有的話就要調用Expand()了。

SafeExp()的返回值表示是否引爆了地雷,就是標記錯誤,true表示是,false表示否。這主要用于判斷這次游戲是否要結束。

類介紹

圖像緩存 ExtendedImage

ExtendedImage是Siemens自己擴展的一個專用類,只在Siemens的Java中存在。

這個類主要是用做圖像的緩存。大家不知道還有沒有印象,以前在PC上編程的時候由于顯示的速度比較慢,往往會開一片顯示緩存,先把要現實的內容畫到這片緩存中,全部畫好后再一次性顯示出來,ExtendedImage類就起到了這個作用。其實Java本身的Image類也可以實現類似的功能,但是顯示速度好象不如人意,而且ExtendedImage更好用,所以我基本上都采用這個類。當然這對通用性是不利的。

ExtendImage的主要函數有:

void clear(byte color);

用給定的顏色填充整個圖形區域。

void blitToScreen(int x, int y);

將緩存內容貼到顯示屏上,(x,y)是屏幕左上角坐標。

Image getImage();

返回一個標準的Image類。可以通過ExtendImage.getImage().getGraphics()得到與其相關的Graphics對象,用來往ExtendImage上面畫圖。

求java小游戲源代碼

表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. // 拖動標記 --當用戶在棋子上按下鼠標按鍵時設為true, // 釋放鼠標按鍵時設為false boolean inDrag = false; // Left coordinate of checkerboard's upper-left corner. // 棋盤左上角的左方向坐標 int boardx; // Top coordinate of checkerboard's upper-left corner. //棋盤左上角的上方向坐標 int boardy; // Left coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原點(左上角)的左方向坐標 int ox; // Top coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原點(左上角)的上方向坐標 int oy; // Left displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按鍵時的鼠標坐標與棋子矩形原點之間的左方向位移 int relx; // Top displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按鍵時的鼠標坐標與棋子矩形原點之間的上方向位移 int rely; // Width of applet drawing area. // applet繪圖區域的寬度 int width; // Height of applet drawing area. // applet繪圖區域的高度 int height; // Image buffer. // 圖像緩沖 Image imBuffer; // Graphics context associated with image buffer. // 圖像緩沖相關聯的圖形背景 Graphics imG; public void init () { // Obtain the size of the applet's drawing area. // 獲取applet繪圖區域的尺寸 width = getSize ().width; height = getSize ().height; // Create image buffer. // 創建圖像緩沖 imBuffer = createImage (width, height); // Retrieve graphics context associated with image buffer. // 取出圖像緩沖相關聯的圖形背景 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. // 初始化棋子矩形的起始原點,使得棋子在第一行左數第二列的方格里居中 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添加一個用來監聽鼠標按鍵的按下和釋放事件的鼠標監聽器 addMouseListener (new MouseAdapter () { public void mousePressed (MouseEvent e) { // Obtain mouse coordinates at time of press. // 獲取按鍵時的鼠標坐標 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). // 在按鍵時如果鼠標位于可拖動的棋子上方 // (也就是contains (x, y)返回true),則保存當前 // 鼠標坐標與棋子的原點之間的距離(始終為正值)并且 // 將拖動標志設為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)仍處于棋子范圍內則返回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. // 當鼠標按鍵被釋放時,如果inDrag已經為true, // 則將其置為false(用來表明不在拖動過程中) if (inDrag) inDrag = false; } }); // Attach a mouse motion listener to the applet. That listener listens // for mouse drag events. //向applet添加一個用來監聽鼠標拖動事件的鼠標運動監聽器 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), // 并且刷新顯示區域(此時的棋子已經位于新坐標上) 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. // 繪制圖像緩沖的內容 g.drawImage (imBuffer, 0, 0, this); } void paintChecker (Graphics g, int x, int y) { // Set checker shadow color. // 設置棋子陰影的顏色 g.setColor (Color.black); // Paint checker shadow. // 繪制棋子的陰影 g.fillOval (x, y, CHECKERDIM, CHECKERDIM); // Set checker color. // 設置棋子顏色 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調用了update()方法來響應拖動棋子時所調用的repaint()方法。該方法從 // Container類繼承的默認實現會在調用paint()之前,將applet的繪圖區域清除 // 為背景色,這種繪制之后的清除就導致了閃爍。CheckerDrag重寫了update()來 // 防止背景被清除,從而消除了閃爍。 public void update (Graphics g) { paint (g); }}

java新手,求完整的源代碼

//都是從新手過來的,以下代碼供參考

//1.

public?class?BankAccount?{

private?static?String?acctnum;

private?static?double?money;

private?static?void?showAcct()?{

System.out.println("賬號為:?"?+?acctnum);

}

private?static?void?showMoney()?{

System.out.println("余額為:?"?+?money);

}

public?BankAccount(String?acc,?double?m)?{

this.acctnum?=?acc;

this.money?=?m;

}

public?static?void?main(String[]?args)?{

BankAccount?ba?=?new?BankAccount("626600018888",?5000.00);

ba.showAcct();

ba.showMoney();

}

}

//2.

public?class?Triangle?{

private?static?float?a;

private?static?float?b;

private?static?float?c;

public?Triangle(float?a,?float?b,?float?c)?{

this.a?=?a;

this.b?=?b;

this.c?=?c;

}

public?static?boolean?judgeTriangle(float?a,?float?b,?float?c)?{

if?((a??Math.abs(b?-?c)??a??b?+?c)

?(b??Math.abs(a?-?c)??b??a?+?c)

?(c??Math.abs(a?-?b)??c??a?+?b))

return?true;

else

return?false;

}

public?float?getCircumference()?{

return?this.a?+?this.b?+?this.c;

}

}

//3.

public?class?TestTriangle?{

public?static?void?main(String[]?args)?{

Triangle?t?=?new?Triangle(5.3f,7.8f,9.3f);

if(t.judgeTriangle(5.3f,7.8f,9.3f)){

System.out.print("能夠成三角形,周長為:?");

System.out.printf("%9.2f",t.getCircumference());}

else

System.out.println("不能構成三角形");

}

}

跪求,一個用java寫的飛行射擊類的游戲的源代碼, 急啊啊啊。。。

有多急,敢多給點分嗎,我剛好寫了一個,類似以前的小霸王的那種

求一個JAVA游戲代碼!!!急!!!

俄羅斯方塊——java源代碼提供

import java.awt.*;

import java.awt.event.*;

//俄羅斯方塊類

public class ERS_Block extends Frame{

public static boolean isPlay=false;

public static int level=1,score=0;

public static TextField scoreField,levelField;

public static MyTimer timer;

GameCanvas gameScr;

public static void main(String[] argus){

ERS_Block ers = new ERS_Block("俄羅斯方塊游戲 V1.0 Author:Vincent");

WindowListener win_listener = new WinListener();

ers.addWindowListener(win_listener);

}

//俄羅斯方塊類的構造方法

ERS_Block(String title){

super(title);

setSize(600,480);

setLayout(new GridLayout(1,2));

gameScr = new GameCanvas();

gameScr.addKeyListener(gameScr);

timer = new MyTimer(gameScr);

timer.setDaemon(true);

timer.start();

timer.suspend();

add(gameScr);

Panel rightScr = new Panel();

rightScr.setLayout(new GridLayout(2,1,0,30));

rightScr.setSize(120,500);

add(rightScr);

//右邊信息窗體的布局

MyPanel infoScr = new MyPanel();

infoScr.setLayout(new GridLayout(4,1,0,5));

infoScr.setSize(120,300);

rightScr.add(infoScr);

//定義標簽和初始值

Label scorep = new Label("分數:",Label.LEFT);

Label levelp = new Label("級數:",Label.LEFT);

scoreField = new TextField(8);

levelField = new TextField(8);

scoreField.setEditable(false);

levelField.setEditable(false);

infoScr.add(scorep);

infoScr.add(scoreField);

infoScr.add(levelp);

infoScr.add(levelField);

scorep.setSize(new Dimension(20,60));

scoreField.setSize(new Dimension(20,60));

levelp.setSize(new Dimension(20,60));

levelField.setSize(new Dimension(20,60));

scoreField.setText("0");

levelField.setText("1");

//右邊控制按鈕窗體的布局

MyPanel controlScr = new MyPanel();

controlScr.setLayout(new GridLayout(5,1,0,5));

rightScr.add(controlScr);

//定義按鈕play

Button play_b = new Button("開始游戲");

play_b.setSize(new Dimension(50,200));

play_b.addActionListener(new Command(Command.button_play,gameScr));

//定義按鈕Level UP

Button level_up_b = new Button("提高級數");

level_up_b.setSize(new Dimension(50,200));

level_up_b.addActionListener(new Command(Command.button_levelup,gameScr));

//定義按鈕Level Down

Button level_down_b =new Button("降低級數");

level_down_b.setSize(new Dimension(50,200));

level_down_b.addActionListener(new Command(Command.button_leveldown,gameScr));

//定義按鈕Level Pause

Button pause_b =new Button("游戲暫停");

pause_b.setSize(new Dimension(50,200));

pause_b.addActionListener(new Command(Command.button_pause,gameScr));

//定義按鈕Quit

Button quit_b = new Button("退出游戲");

quit_b.setSize(new Dimension(50,200));

quit_b.addActionListener(new Command(Command.button_quit,gameScr));

controlScr.add(play_b);

controlScr.add(level_up_b);

controlScr.add(level_down_b);

controlScr.add(pause_b);

controlScr.add(quit_b);

setVisible(true);

gameScr.requestFocus();

}

}

//重寫MyPanel類,使Panel的四周留空間

class MyPanel extends Panel{

public Insets getInsets(){

return new Insets(30,50,30,50);

}

}

//游戲畫布類

class GameCanvas extends Canvas implements KeyListener{

final int unitSize = 30; //小方塊邊長

int rowNum; //正方格的行數

int columnNum; //正方格的列數

int maxAllowRowNum; //允許有多少行未削

int blockInitRow; //新出現塊的起始行坐標

int blockInitCol; //新出現塊的起始列坐標

int [][] scrArr; //屏幕數組

Block b; //對方快的引用

//畫布類的構造方法

GameCanvas(){

rowNum = 15;

columnNum = 10;

maxAllowRowNum = rowNum - 2;

b = new Block(this);

blockInitRow = rowNum - 1;

blockInitCol = columnNum/2 - 2;

scrArr = new int [32][32];

}

//初始化屏幕,并將屏幕數組清零的方法

void initScr(){

for(int i=0;irowNum;i++)

for (int j=0; jcolumnNum;j++)

scrArr[j]=0;

b.reset();

repaint();

}

//重新刷新畫布方法

public void paint(Graphics g){

for(int i = 0; i rowNum; i++)

for(int j = 0; j columnNum; j++)

drawUnit(i,j,scrArr[j]);

}

//畫方塊的方法

public void drawUnit(int row,int col,int type){

scrArr[row][col] = type;

Graphics g = getGraphics();

tch(type){ //表示畫方快的方法

case 0: g.setColor(Color.black);break; //以背景為顏色畫

case 1: g.setColor(Color.blue);break; //畫正在下落的方塊

case 2: g.setColor(Color.magenta);break; //畫已經落下的方法

}

g.fill3DRect(col*unitSize,getSize().height-(row+1)*unitSize,unitSize,unitSize,true);

g.dispose();

}

public Block getBlock(){

return b; //返回block實例的引用

}

//返回屏幕數組中(row,col)位置的屬性值

public int getScrArrXY(int row,int col){

if (row 0 || row = rowNum || col 0 || col = columnNum)

return(-1);

else

return(scrArr[row][col]);

}

//返回新塊的初始行坐標方法

public int getInitRow(){

return(blockInitRow); //返回新塊的初始行坐標

}

//返回新塊的初始列坐標方法

public int getInitCol(){

return(blockInitCol); //返回新塊的初始列坐標

}

//滿行刪除方法

void deleteFullLine(){

int full_line_num = 0;

int k = 0;

for (int i=0;irowNum;i++){

boolean isfull = true;

L1:for(int j=0;jcolumnNum;j++)

if(scrArr[j] == 0){

k++;

isfull = false;

break L1;

}

if(isfull) full_line_num++;

if(k!=0 k-1!=i !isfull)

for(int j = 0; j columnNum; j++){

if (scrArr[j] == 0)

drawUnit(k-1,j,0);

else

drawUnit(k-1,j,2);

scrArr[k-1][j] = scrArr[j];

}

}

for(int i = k-1 ;i rowNum; i++){

for(int j = 0; j columnNum; j++){

drawUnit(i,j,0);

scrArr[j]=0;

}

}

ERS_Block.score += full_line_num;

ERS_Block.scoreField.setText(""+ERS_Block.score);

}

//判斷游戲是否結束方法

boolean isGameEnd(){

for (int col = 0 ; col columnNum; col ++){

if(scrArr[maxAllowRowNum][col] !=0)

return true;

}

return false;

}

public void keyTyped(KeyEvent e){

}

public void keyReleased(KeyEvent e){

}

//處理鍵盤輸入的方法

public void keyPressed(KeyEvent e){

if(!ERS_Block.isPlay)

return;

tch(e.getKeyCode()){

case KeyEvent.VK_DOWN:b.fallDown();break;

case KeyEvent.VK_LEFT:b.leftMove();break;

case KeyEvent.VK_RIGHT:b.rightMove();break;

case KeyEvent.VK_SPACE:b.leftTurn();break;

}

}

}

//處理控制類

class Command implements ActionListener{

static final int button_play = 1; //給按鈕分配編號

static final int button_levelup = 2;

static final int button_leveldown = 3;

static final int button_quit = 4;

static final int button_pause = 5;

static boolean pause_resume = true;

int curButton; //當前按鈕

GameCanvas scr;

//控制按鈕類的構造方法

Command(int button,GameCanvas scr){

curButton = button;

this.scr=scr;

}

//按鈕執行方法

public void actionPerformed (ActionEvent e){

tch(curButton){

case button_play:if(!ERS_Block.isPlay){

scr.initScr();

ERS_Block.isPlay = true;

ERS_Block.score = 0;

ERS_Block.scoreField.setText("0");

ERS_Block.timer.resume();

}

scr.requestFocus();

break;

case button_levelup:if(ERS_Block.level 10){

ERS_Block.level++;

ERS_Block.levelField.setText(""+ERS_Block.level);

ERS_Block.score = 0;

ERS_Block.scoreField.setText(""+ERS_Block.score);

}

scr.requestFocus();

break;

case button_leveldown:if(ERS_Block.level 1){

ERS_Block.level--;

ERS_Block.levelField.setText(""+ERS_Block.level);

ERS_Block.score = 0;

ERS_Block.scoreField.setText(""+ERS_Block.score);

}

scr.requestFocus();

break;

case button_pause:if(pause_resume){

ERS_Block.timer.suspend();

pause_resume = false;

}else{

ERS_Block.timer.resume();

pause_resume = true;

}

scr.requestFocus();

break;

case button_quit:System.exit(0);

}

}

}

//方塊類

class Block {

static int[][] pattern = {

{0x0f00,0x4444,0x0f00,0x4444},//用十六進至表示,本行表示長條四種狀態

{0x04e0,0x0464,0x00e4,0x04c4},

{0x4620,0x6c00,0x4620,0x6c00},

{0x2640,0xc600,0x2640,0xc600},

{0x6220,0x1700,0x2230,0x0740},

{0x6440,0x0e20,0x44c0,0x8e00},

{0x0660,0x0660,0x0660,0x0660}

};

int blockType; //塊的模式號(0-6)

int turnState; //塊的翻轉狀態(0-3)

int blockState; //快的下落狀態

int row,col; //塊在畫布上的坐標

GameCanvas scr;

//塊類的構造方法

Block(GameCanvas scr){

this.scr = scr;

blockType = (int)(Math.random() * 1000)%7;

turnState = (int)(Math.random() * 1000)%4;

blockState = 1;

row = scr.getInitRow();

col = scr.getInitCol();

}

//重新初始化塊,并顯示新塊

public void reset(){

blockType = (int)(Math.random() * 1000)%7;

turnState = (int)(Math.random() * 1000)%4;

blockState = 1;

row = scr.getInitRow();

col = scr.getInitCol();

dispBlock(1);

}

//實現“塊”翻轉的方法

public void leftTurn(){

if(assertValid(blockType,(turnState + 1)%4,row,col)){

dispBlock(0);

turnState = (turnState + 1)%4;

dispBlock(1);

}

}

//實現“塊”的左移的方法

public void leftMove(){

if(assertValid(blockType,turnState,row,col-1)){

dispBlock(0);

col--;

dispBlock(1);

}

}

//實現塊的右移

public void rightMove(){

if(assertValid(blockType,turnState,row,col+1)){

dispBlock(0);

col++;

dispBlock(1);

}

}

//實現塊落下的操作的方法

public boolean fallDown(){

if(blockState == 2)

return(false);

if(assertValid(blockType,turnState,row-1,col)){

dispBlock(0);

row--;

dispBlock(1);

return(true);

}else{

blockState = 2;

dispBlock(2);

return(false);

}

}

//判斷是否正確的方法

boolean assertValid(int t,int s,int row,int col){

int k = 0x8000;

for(int i = 0; i 4; i++){

for(int j = 0; j 4; j++){

if((int)(pattern[t][s]k) != 0){

int temp = scr.getScrArrXY(row-i,col+j);

if (temp0||temp==2)

return false;

}

k = k 1;

}

}

return true;

}

//同步顯示的方法

public synchronized void dispBlock(int s){

int k = 0x8000;

for (int i = 0; i 4; i++){

for(int j = 0; j 4; j++){

if(((int)pattern[blockType][turnState]k) != 0){

scr.drawUnit(row-i,col+j,s);

}

k=k1;

}

}

}

}

//定時線程

class MyTimer extends Thread{

GameCanvas scr;

public MyTimer(GameCanvas scr){

this.scr = scr;

}

public void run(){

while(true){

try{

sleep((10-ERS_Block.level + 1)*100);

}

catch(InterruptedException e){}

if(!scr.getBlock().fallDown()){

scr.deleteFullLine();

if(scr.isGameEnd()){

ERS_Block.isPlay = false;

suspend();

}else

scr.getBlock().reset();

}

}

}

class WinListener extends WindowAdapter{

public void windowClosing (WindowEvent l){

System.exit(0);

}

}

什么是java源代碼 怎么查看

你說的java源代碼是指編譯成的class文件前的java文件。

當我們運行.java文件時,它會被系統編譯成.class文件,例如Test.java編譯之后就是Test.class,

源文件就是指Test.java文件,

一般部署項目時,有.class文件就可以發布運行了,但是如果想修改這個系統,.class是不能修改的,要有.java文件才能修改

也可以上網去下反編譯軟件,就是能把.class文件大部分還原成.java文件的工具,但不是100%還原,而且如果不是正版的,小心有毒啊,什么的。


本文題目:java打槍源代碼 JAVA源代碼和源文件
瀏覽地址:http://www.xueling.net.cn/article/hhocoo.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 亚洲AV国产AV综合AⅤ | 97爱视频 | 国产精品第一区揄拍 | 伊人成人在线视频 | 日本无遮挡在线观看 | 欧美成人做爰高潮片免费观看8850 | 97中文字幕在线观看 | 亚洲成人精品区 | 久久久久久一级毛片免费 | 久久精品国产亚洲综合色 | 偷窥自拍五月天 | 天堂蜜桃一区二区三区 | 亚洲精品www久久久 亚洲成人网一区 | 国产自啪精品视频网站丝袜 | 97青娱乐 | 午夜国产视频精品久久 | 99视频精品免费观看 | 极品熟女一区二区三区 | 狠狠躁日日躁夜夜躁2020 | 插插看看 | 国产自偷自拍 | 欧美精品国产一区二区三区 | 日本在线免费 | 99久久国产综合精品尤物酒店 | 亚洲国产精品成人精品无码区 | 欧美亚一区二区 | 亚洲欧洲美洲综合色网 | 国产视频二区在线观看 | 久久久久久久成人 | 91精品国产一区二区三区 | xxxxx网| 99精品国产一区二区 | 一级黄片一级毛片 | 国产99久久久精品视频 | 国产精品最新资源网 | 亚洲国产精品综合小说图片区 | a级毛片免费观看片 | 综合网亚洲 | 东北妓女口爆吞精毛片 | 精品无人区卡卡卡卡卡二卡三乱码 | 成人国产精品一区在线观看播放 |