亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? maincanvas.java

?? 本論文介紹了J2ME的相關技術及本程序的結構分析和具體功能的實現
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package popo;import java.util.Vector;import javax.microedition.lcdui.*;//import java.util.Random;import javax.microedition.rms.*;import com.nokia.mid.ui.*;import java.util.*;class MainCanvas extends FullCanvas implements Runnable{  Display display;  StartCanvas Start;  PoPo popoEx;  private Thread thread;  /** Vector of images to display */  private Vector images;  private int level;//關數  private int map[][] = new int[7][6]; //地圖,從上到下  /*X and Y*/  private int recX, recY; //方塊坐標基準  private int chooserX, chooserY;//選擇框坐標基準  /** Width and height */  private int frameWidth, frameHeight;//屏幕大小  private int recWidth, recHeight;//方塊大小  /*索引*/  //red: 0-2; yellow: 3-5; blue: 6-8; green: 9-11; Purple: 12-14; orange: 15-17  private int indexGround, indexLost, indexClear, indexChooser; //其它圖片索引  private boolean isPause;//游戲暫停標志  private boolean isDowning,isArranging,isBombed;//是否有方塊下落中,若是則不能下落新的方塊;是否在爆炸  private boolean isClear, isLost;//是否過關,是否game over  /*Flags(決定位置)*/  private int wFlagChooser;//選擇框水平位置標志(0,1,2,3,4,5)(left -> right)  private int hFlagChooser;//選擇框垂直位置標志(0,1,2,3,4,5)(up -> down)  private int hFlagMap;//地圖上現有方塊的最大高度  //時間  private int time,score,tempScore;  private Timer aTimer;  private GameTimerTask TimerTask;  //字體  private Font font;  //爆炸效果  private int bomb[][] = new int[7][6]; //紀錄爆炸方塊  private int countFlash ;//爆炸閃爍計數  private int indexThrow;//發射方塊數組的索引  private int flagThrow;// 標志使用的顏色數組  private boolean color[] = new boolean[4];//每一關所有顏色的使用狀況,true:地圖上有,false:地圖上沒有  //bomb  private int bombCount;//當前炸彈數量  private int scoreCount;//加分系數  private int[] Color = new int[2];//下落方塊顏色標志  private int[] colorTemp = new int[4];//正在使用的方塊顏色  private int[] colorInit = new int[4];//每一關所有的方塊顏色  public MainCanvas(StartCanvas Start){    this.Start = Start;    this.display = Start.display;    popoEx = new PoPo();    frameWidth = getWidth();    frameHeight = getHeight();    font = Font.getFont(Font.FACE_PROPORTIONAL,1,Font.SIZE_LARGE);    //關卡    level = 1;  }  public void init(int level){    isPause = false; isClear = false; isLost = false; isBombed = false;isDowning = false; isArranging = false;    //讀本關地圖及其他參數(根據level值)    popoEx.game_init(level);    map = popoEx.map;    wFlagChooser = 0;    hFlagChooser = popoEx.hFlagchooser;    hFlagMap = popoEx.hFlagMap;    //初始化參數    time = -1; score = 0; tempScore = 0;    aTimer = new Timer();    TimerTask = new GameTimerTask();    countFlash = 0;    if(level == 3)      flagThrow = 4;    else      flagThrow = 3;    indexThrow = 0;    //初始化爆炸標志數組    for(int i=0; i<7; i++){      for(int j=0; j<6; j++){        bomb[i][j] = -1;      }    }    bombCount = 0;    scoreCount = 0;    for(int i=0; i<4; i++){      if(i<popoEx.flagThrow)        color[i] = true;      else        color[i] = false;      colorTemp[i] = -1;      colorInit[i] = popoEx.color[i];    }    Color[0] = -1; Color[1] = -1;  }   public void setImages(Vector images) {    this.images = images;    indexGround = 18;   indexClear = 19;   indexLost = 20; indexChooser = 21;    recX = 11;    recY = 13;    if (images.size() > 0) { //得到彩色方塊大小      Image image = (Image)images.elementAt(0);//得到彩色方塊大小      recWidth = image.getWidth();      recHeight = image.getHeight();      image = (Image)images.elementAt(indexChooser);//得到選擇框大小    } else {      recWidth = 0;  recHeight = 0;    }    chooserX = recX - 2;    chooserY = recY - 4;  }  protected void showNotify() {     if (images != null && images.size() > 1) {       init(level);       thread = new Thread(this);       aTimer.scheduleAtFixedRate(TimerTask,0,1000);       thread.start();     }  }  protected void keyPressed(int keyCode) {    int chooseAction = getGameAction(keyCode);    switch (chooseAction) {      case UP: //pause        if(isLost != true && isClear != true){          if(isPause == false){//pause            thread = null;            isPause = true;            TimerTask.cancel();          }          else{//resume            isPause = false;            time --;            thread = new Thread(this);            TimerTask = new GameTimerTask();            aTimer.scheduleAtFixedRate(TimerTask,0,1000);            thread.start();          }        }        break;      case DOWN://釋放方塊        if(isPause == false && isDowning == false){          if(will_down()){            isDowning = true;            //下落一格            map[hFlagChooser+1][wFlagChooser] = map[hFlagChooser][wFlagChooser];            map[hFlagChooser+1][wFlagChooser+1] = map[hFlagChooser][wFlagChooser+1];            //紀錄下落方塊顏色,可能會導致顏色增加,后面再判斷            Color[0] = map[hFlagChooser][wFlagChooser]/3; Color[1] = map[hFlagChooser][wFlagChooser+1]/3;            if(map[hFlagChooser+1][wFlagChooser]%3 >0)              bombCount ++;            if(map[hFlagChooser+1][wFlagChooser+1]%3 >0)              bombCount ++;            //trace            System.out.println("indexThrow:------  "+indexThrow);///////////            System.out.println("bombCount:  "+bombCount);///////////            //取隊列中下一個方塊            switch(popoEx.flagThrow){              case 4:                map[hFlagChooser][wFlagChooser] = popoEx.thrower4[indexThrow][0];                map[hFlagChooser][wFlagChooser+1] =  popoEx.thrower4[indexThrow][1];                indexThrow++;                if(indexThrow >= 6)                  indexThrow = 0;                break;              case 3:                map[hFlagChooser][wFlagChooser] = popoEx.thrower3[indexThrow][0];                map[hFlagChooser][wFlagChooser+1] =  popoEx.thrower3[indexThrow][1];                indexThrow++;                System.out.println("popoEx.thrower3:  "+popoEx.thrower3[indexThrow-1][0]+" "+popoEx.thrower3[indexThrow-1][1]);///////////                if(indexThrow >= 6)                  indexThrow = 0;                 break;              case 2:                map[hFlagChooser][wFlagChooser] = popoEx.thrower2[indexThrow][0];                map[hFlagChooser][wFlagChooser+1] =  popoEx.thrower2[indexThrow][1];                indexThrow++;                System.out.println("popoEx.thrower2:  "+popoEx.thrower2[indexThrow][0]+" "+popoEx.thrower2[indexThrow][1]);///////////                if(indexThrow >= 9)                  indexThrow = 0;                break;              case 1:                map[hFlagChooser][wFlagChooser] = popoEx.thrower1[indexThrow][0];                map[hFlagChooser][wFlagChooser+1] =  popoEx.thrower1[indexThrow][1];                System.out.println("popoEx.thrower1:  "+popoEx.thrower1[indexThrow][0]+" "+popoEx.thrower1[indexThrow][1]);///////////                indexThrow++;                if(indexThrow >= 3)                  indexThrow = 0;                break;              default:                break;            }            repaint(chooserX,chooserY,recWidth*7,recHeight*8);          }        }        break;      case FIRE://方塊旋轉        if(isClear == true){//開始下一關          showNotify() ;        }else if(isLost == true){//游戲失敗,退到菜單界面,參數保持這一關          thread = null;          aTimer.cancel();          display.setCurrent(this.Start);        }        else if(isPause == false){//方塊旋轉          int temp = map[hFlagChooser][wFlagChooser];          map[hFlagChooser][wFlagChooser] = map[hFlagChooser][wFlagChooser+1];          map[hFlagChooser][wFlagChooser+1] = temp;          repaint(chooserX,chooserY+hFlagChooser*recHeight,frameWidth-chooserX,chooserY+(hFlagChooser+1)*recHeight);        }        break;      case LEFT: //選擇框左移        if(wFlagChooser > 0 && isPause == false){          wFlagChooser --;        }        break;      case RIGHT://選擇框右移        if(wFlagChooser < 4 && isPause == false){          wFlagChooser ++;        }        break;      default:        break;    }  }  //發射行上下移動  public void chooser_change(){    if(hFlagMap - 2 >= 0 && hFlagMap - 2 < 7 ){      for(int i =0; i< 6; i++){        map[hFlagMap - 2][i] = map[hFlagChooser][i];        map[hFlagChooser][i] = -1;      }      hFlagChooser = hFlagMap - 2;    }  }  //方塊能否下落  public boolean will_down(){    if(hFlagChooser == 0){      if(map[1][wFlagChooser] == -1 && map[1][wFlagChooser+1] == -1)        return true;      else        return false;    }else      return true;  }   //判斷是否能夠爆炸  public boolean will_bomb(int x, int y){    int flag = map[x][y] /3;    for (int i=-1; i<2; i++)    {      if (x+i<hFlagChooser+1) continue;      if (i==0) continue;      if (x+i>=7) continue;      if(flag>0){//非紅色        if(map[x+i][y]/3 == flag) //down--up          return true;      }else{//紅色        if((map[x+i][y]>-1) && (map[x+i][y]<3)) //down--up          return true;      }    }    for (int j=-1; j<2; j++)    {      if (y+j<0) continue;      if (j==0) continue;      if (y+j>=6) continue;      if(flag>0){//非紅色        if(flag == map[x][y+j]/3) //left--right          return true;      }else{//紅色        if((map[x][y+j]>-1)&&(map[x][y+j]<3)) //lef--right          return true;      }    }    return false;  }  //控制爆炸  public void do_bomb(int x, int y, int flag){    //注意flag==0的情況,即紅色方塊的判斷    //加分    tempScore += 20;    //設置爆炸效果    if(map[x][y] % 3 > 0 )//如果是炸彈,炸彈數遞減      bombCount --;    bomb[x][y] = 3*flag + 2;    map[x][y] = -1;    for (int i=-1; i<2; i++)    {      if (x+i<hFlagChooser+1) continue;      if (i==0) continue;      if (x+i>=7) continue;      if(flag>0){//非紅色        if(map[x+i][y]/3 == flag) //down--up          do_bomb(x+i,y,flag);      }else{//紅色        if((map[x+i][y]>-1) && (map[x+i][y]<3)) //down--up          do_bomb(x+i,y,flag);      }    }    for (int j=-1; j<2; j++)    {      if (y+j<0) continue;      if (j==0) continue;      if (y+j>=6) continue;      if(flag>0){//非紅色        if(flag == map[x][y+j]/3) //left--right          do_bomb(x,y+j,flag);      }else{//紅色        if((map[x][y+j]>-1)&&(map[x][y+j]<3)) //lef--right          do_bomb(x,y+j,flag);      }    }  }  //控制方塊下落,并且觸發炸彈  public void do_down(){    int height = 6;    int count = 2;    //方塊下落    for(int j = wFlagChooser; j <= wFlagChooser+1; j++){  //列      for(int i = hFlagChooser+1; i<6; i++){ //行        if(map[i][j] >= 0 && map[i+1][j] == -1){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲精品一区二区三区在线观看| 欧美一区二区免费观在线| 欧美在线观看视频一区二区三区| 日韩精品在线网站| 亚洲一区二区三区四区五区黄| 久久精品国产成人一区二区三区| 99视频一区二区| 久久综合一区二区| 亚洲第一电影网| 99国产精品久| 久久免费国产精品| 日韩高清不卡在线| 在线观看91视频| 亚洲欧美在线观看| 国产成人综合精品三级| 日韩免费观看2025年上映的电影| 亚洲国产日韩一级| 色哦色哦哦色天天综合| 中国色在线观看另类| 九九**精品视频免费播放| 欧美狂野另类xxxxoooo| 亚洲综合视频在线| 91在线播放网址| 国产精品二三区| 国产99精品国产| 久久精品欧美日韩| 国产精品综合网| 久久欧美一区二区| 国产制服丝袜一区| 欧美mv日韩mv| 久久99精品久久久| 精品国产一区二区精华| 紧缚捆绑精品一区二区| 久久先锋影音av鲁色资源网| 国产一区二区在线影院| 2021国产精品久久精品| 国产电影精品久久禁18| 欧美高清在线视频| 99视频一区二区三区| 亚洲免费观看高清| 在线免费观看视频一区| 亚洲一区视频在线观看视频| 欧美日本国产视频| 日韩精品午夜视频| 精品国产免费一区二区三区香蕉 | 日韩码欧中文字| 色综合天天综合网国产成人综合天 | 日韩一级二级三级精品视频| 日本不卡一区二区三区| 日韩一级二级三级| 国产美女精品一区二区三区| 国产精品欧美综合在线| 色综合一区二区三区| 午夜国产精品影院在线观看| 日韩女优制服丝袜电影| 国产白丝精品91爽爽久久| 亚洲欧美一区二区三区极速播放 | 欧美日本在线播放| 精品一区二区国语对白| 国产精品嫩草99a| 91成人网在线| 美女mm1313爽爽久久久蜜臀| 久久久蜜桃精品| 91丝袜美腿高跟国产极品老师 | 国产精品白丝jk黑袜喷水| 综合亚洲深深色噜噜狠狠网站| 欧美三级日韩在线| 国产精品一卡二卡在线观看| 丝瓜av网站精品一区二区| 精品国产免费一区二区三区四区 | 六月丁香婷婷色狠狠久久| 国产欧美精品区一区二区三区| 色婷婷香蕉在线一区二区| 久久99久久99精品免视看婷婷| 国产精品色一区二区三区| 欧美一区二视频| 91美女片黄在线观看91美女| 老司机精品视频在线| 最新中文字幕一区二区三区| 91精品国产色综合久久ai换脸 | 青青草原综合久久大伊人精品| 国产性色一区二区| 欧美日韩国产高清一区二区三区 | 奇米精品一区二区三区在线观看一| 欧美国产精品劲爆| 日韩一区国产二区欧美三区| 92精品国产成人观看免费| 狠狠色丁香九九婷婷综合五月| 亚洲免费毛片网站| 中文字幕va一区二区三区| 欧美一级高清片| 欧美日韩亚洲高清一区二区| 99热精品一区二区| 国产传媒日韩欧美成人| 精品一区二区三区在线播放视频| 亚洲在线中文字幕| |精品福利一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 5566中文字幕一区二区电影| 欧美在线免费观看亚洲| 99久久精品一区二区| 成人精品一区二区三区四区 | 亚洲国产欧美一区二区三区丁香婷| 国产日韩精品视频一区| www精品美女久久久tv| 欧美一区三区四区| 欧美精品xxxxbbbb| 在线观看国产精品网站| 色综合久久精品| 欧美日韩亚洲综合在线| 91麻豆国产自产在线观看| 丁香网亚洲国际| www.一区二区| 91色porny蝌蚪| 色一情一乱一乱一91av| 色婷婷综合五月| 色婷婷综合久色| 欧美探花视频资源| 欧美无砖专区一中文字| 欧美日韩电影在线播放| 欧美日韩国产在线播放网站| 欧美精品高清视频| 日韩免费福利电影在线观看| 日韩一区二区三区免费观看| 欧美一区二区视频免费观看| 日韩欧美一区在线观看| 精品电影一区二区| 国产日韩成人精品| 综合久久国产九一剧情麻豆| 一区二区三区av电影 | 欧美色图片你懂的| 欧美精品久久99久久在免费线| 日韩精品中文字幕在线一区| 久久夜色精品国产欧美乱极品| 久久精品一区蜜桃臀影院| 中日韩av电影| 亚洲最新视频在线播放| 日韩精品久久理论片| 久久福利视频一区二区| 高清视频一区二区| 91久久一区二区| 欧美一卡二卡在线| 国产欧美一区二区精品性色超碰| 中文字幕一区二区三区不卡| 亚洲国产日日夜夜| 国产一区二区不卡老阿姨| 9久草视频在线视频精品| 欧美美女一区二区| 国产日韩欧美精品综合| 亚洲一二三区不卡| 国产精品综合av一区二区国产馆| 99久久99久久精品免费观看| 日韩一区二区电影网| 中文字幕人成不卡一区| 日本不卡高清视频| 欧美日韩第一区日日骚| 欧美国产精品一区二区三区| 午夜一区二区三区视频| 懂色av一区二区夜夜嗨| 3d动漫精品啪啪一区二区竹菊| 欧美激情在线看| 男女性色大片免费观看一区二区 | 亚洲国产高清aⅴ视频| 午夜欧美大尺度福利影院在线看| 黄色资源网久久资源365| 色拍拍在线精品视频8848| 久久综合中文字幕| 亚洲成人精品在线观看| 成人美女视频在线看| 91精品久久久久久久久99蜜臂| 1024亚洲合集| 国产精品亚洲人在线观看| 欧美日韩国产免费| 亚洲青青青在线视频| 国产成人精品影视| 精品久久久三级丝袜| 亚洲国产一区视频| 色播五月激情综合网| 国产精品每日更新在线播放网址| 捆绑调教美女网站视频一区| 欧美色图片你懂的| 亚洲综合色婷婷| 成人高清在线视频| 国产日韩av一区| 国内外精品视频| 欧美不卡在线视频| 蜜臀a∨国产成人精品| 欧美少妇xxx| 亚洲综合成人在线| 日本精品视频一区二区三区| 中文字幕一区三区| 成人aaaa免费全部观看| 国产欧美日韩麻豆91| 国模无码大尺度一区二区三区| 91麻豆精品国产91久久久久久| 亚洲一区在线观看免费 | zzijzzij亚洲日本少妇熟睡| 国产视频一区在线播放| 国产精品一线二线三线精华| 精品日韩欧美在线|