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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gameworld.java~2~

?? 手機版泡泡龍游戲
?? JAVA~2~
?? 第 1 頁 / 共 3 頁
字號:
package paopao;

import javax.microedition.lcdui.*;
import java.util.Hashtable;
import java.io.InputStream;
import com.nokia.mid.ui.*;

public class GameWorld extends FullCanvas implements Runnable
{
  final int screenW = getWidth();
  final int screenH = getHeight();
  final int paintW = 128;
  final int paintH = 208 - 3;
  final int orgX = 7;
  final int orgY = 3;
  final int midX = paintW / 2;
  final int midY = paintH / 2;
//score
  int score;
//Thread
  boolean killThread = false;
  boolean pauseThread = false;
  boolean overThread = false;
  int overCount;
  Thread thread = null;
  int interval = 50;
//hardlevel setting
  int hardLevel;
  final int EASY = 9;
  final int MIDDLE = 8;
  final int HARD = 6;
  int shakeAt; //when ball shooted number equals or more then it shakes
  boolean shaking = false;
  int shakeOffX[];
// top press
  int pressCount; //round intervals per top down count
  int shakeCount;
  int nowTop;
//angle
  int angle = 90;
  int _angle = 6;
  int angleSinValue;
  int angleCosValue;
//paopao
  int nextOneColor;
  int toBeShootColor;
  int isMovingColor;
  boolean isMoving = false; //擊出的球是否處于運動過程中
  int shootAngle;
  int v = 10;
  int timeCount;
  final int effectiveR = 8;
  final int localStand = 6;
  int startX;
  int startY;
  int nowX;
  int nowY;
  boolean hitted = false;
  int hittedI;
  int hittedJ;
//falling
  int fallingNum;
  int[][] fallingPara;
  int fallingV = 8;
//time

//round
  int[][] roundPara;
  int roundCount; //read roundPara from map.txt & count
  boolean roundStart = true;
  int roundStartCount;
  int round = 1;

//
  int disappearCount;
  /** Constructor */
  public GameWorld(int hardLevel)
  {
    this.hardLevel = hardLevel;
    try
    {
      jbInit();
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

  protected void show()
  {
    if (thread == null)
      thread = new Thread(this);
    thread.start();
  }

  /**Component initialization*/
  private void jbInit() throws Exception
  {
    roundPara = new int[11][8];
    this.readroundPara();
    switch (hardLevel)
    {
      case EASY:
        shakeAt = 6;
        break;
      case MIDDLE:
        shakeAt = 5;
        break;
      case HARD:
        shakeAt = 4;
        break;
      default:
        break;
    }
    toBeShootColor = 1 + Math.abs(Resource.random.nextInt() % 8);
    nextOneColor = 1 + Math.abs(Resource.random.nextInt() % 8);
    fallingPara = new int[50][3];
    shakeOffX = new int[]
        {1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1};
// Set up this Displayable to listen to command events
    // add the Exit command
  }

  private void readroundPara()
  {
    InputStream is = null;
    try
    {
      is = getClass().getResourceAsStream("/round.txt");
    }
    catch (Exception e)
    {}
    int symbol;
    try
    {
      while ( (symbol = is.read()) != -1)
      {
        if (symbol == '&')
        {
          roundCount++;
          if (roundCount == round)
          {
            for (int i = 0; i < 5; i++)
              is.read();
            int symbol2;
            int rowCount = 0;
            int lineCount = 0;
            while ( (symbol2 = is.read()) != '&')
            {
              if (symbol2 == '\r')
              {
                rowCount++;
                lineCount = 0;
                is.read();
              }
              else roundPara[rowCount][lineCount++] = (int) symbol2 - 48;
            }
            break;
          }
        }
      }

    }
    catch (Exception ex)
    {
    }

  }

  private void nextPaoPao()
  {
    isMovingColor = toBeShootColor;
    toBeShootColor = nextOneColor;
    nextOneColor = 1 + Math.abs(Resource.random.nextInt() % 8);
  }

  protected void keyPressed(int keyCode)
  {
    if (!pauseThread)
    {
      if (keyCode == -6)
        PaoPao.quitApp();
      else if ( (keyCode == -5 || keyCode == 53) && isMoving == false)
        shoot();
      else if (keyCode == -3)
      {
        if (angle < 174)
          angle += 6;
      }
      else if (keyCode == -4)
      {
        if (angle > 6)
          angle -= 6;
      }
      else if (keyCode == -1)
      {
        if (angle == 90)
          return;
        angle = (angle > 90 ? angle - 6 : angle + 6);
      }

    } //if(!pauseThread)
  }

  /**Handle command events*/
  synchronized private void shoot()
  {
//pressCount ++;
//pressCount %= hardLevel;
//if(pressCount >= shakeAt)
//shaking = true;
//if(pressCount == 0)
//topDown();
    startX = 71 - orgX;
    startY = 170 - orgY;
    nowX = startX;
    nowY = startY;
    shootAngle = angle;
    angleSinValue = Resource.getSinAngleValue(shootAngle);
    angleCosValue = Resource.getCosAngleValue(shootAngle);
    isMoving = true;
    timeCount = 0;
    nextPaoPao();
  }

  private void topDown()
  {
    nowTop++;
    shaking = false;
  }

  public void run()
  {
    while (!killThread)
    {
      if (!pauseThread)
      {
        if (!overThread)
        {
          if (roundStart)
          {
            roundStartCount++;
            if (roundStartCount >= 48)
            {
              roundStartCount = 0;
              roundStart = false;
            }
          }
          if (isMoving) //被擊出的球處于運動狀態(tài)中
          {
            paoPaoMoving();
          }
          Falling();
          if (disappearCount > 0)
          {
            disappearCount--;
            if (disappearCount == 0)
              for (int i = 0; i < 10; i++)
                for (int j = 0; j < (i % 2 == 0 ? 8 : 7); j++)
                {
                  if (roundPara[i][j] > 8 && roundPara[i][j] < 17)
                    roundPara[i][j] = 0;
                }
          }
          if (shaking)
          {
            shakeCount++;
            shakeCount %= 16;
          }
          try
          {
            repaint();
            thread.sleep(interval);
          }
          catch (Exception ex)
          {}
        } //if(!overThread)
        //overCount ++;
        // if(overCount >= paintH - nowTop * 14)
        //  killThread = true;
      }
    } //while(!killThread)
//System.out.println("killThread = "+ killThread);
    this.serviceRepaints();
    System.gc();
    PaoPao.shiftCanvas(PaoPao.MENU_ID, 0);

  }

  private void Falling()
  {
    if (fallingNum > 0)
    {
      for (int i = 0; i < fallingNum; i++)
      {
        fallingPara[i][2] += fallingV;
      }
    }

    for (int i = 0; i < fallingNum; i++)
    {
      if (fallingPara[i][2] > paintH + 8)
      {
        for (int j = i; j < fallingNum - 1; j++)
        {
          fallingPara[j][0] = fallingPara[j + 1][0];
          fallingPara[j][1] = fallingPara[j + 1][1];
          fallingPara[j][2] = fallingPara[j + 1][2];
        }
        fallingNum--;
      }
    }

  }

  private void paoPaoMoving()
  {
    int posX = 0;
    int posY = 0;
    int preX;
    int preY;
    int pre_x;
    int pre_y;
    preX = nowX;
    preY = nowY;
    pre_x = nowX;
    pre_y = nowY;
    if (hitted)
    {
      hitted = !hitted;
      dealWithHit(hittedI, hittedJ);
      return;
    }
    timeCount++;
    posX = startX + (timeCount * v) * angleCosValue / 100000;
    posY = startY - (timeCount * v) * angleSinValue / 100000;
    while (true)
    {
      if (posX - 8 < 0)
      {
        startX = 8;
        startY = nowY;
        nowX = 8;
        timeCount = 0;
        angleCosValue = 0 - angleCosValue;
        //timeCount ++;
        break;
      }
      else if (posX + 8 > paintW)
      {
        startX = paintW - 8;
        startY = nowY;
        nowX = paintW - 8;
        timeCount = 0;
        angleCosValue = 0 - angleCosValue;
        //timeCount ++;
        break;
      }
      else if (posY - 8 <= 0) //reach the top
      {
        this.roundPara[0][posX / 16] = isMovingColor;
        nowX = posX;
        nowY = 8;
        checkConnect(0, nowX / 16, isMovingColor);
        if (checkDisappear())
          checkFall();
        isMoving = false;
        return;
      }
      else
      {
        nowX = posX;
        nowY = posY;
        break;
      }
    }

    if (nowY == 8)
      return;

    for (int i = 0; i < 10; i++)
    {
      if (i % 2 == 0)
      {
        for (int j = 0; j < 8; j++)
        {
          if (isCollided(nowX, nowY, j * 16 + 8, i * 14 + 8) &&
              roundPara[i][j] > 0 && roundPara[i][j] < 9)
          {
            for (int m = 1; m <= v; m++)
            {

              preX = startX +
                  ( (timeCount - 1) * v + m) * angleCosValue / 100000;
              preY = startY -
                  ( (timeCount - 1) * v + m) * angleSinValue / 100000;
              if (isCollided(preX, preY, j * 16 + 8, i * 14 + 8))
              {
                hitted = true;
                nowX = preX;
                nowY = preY;
                hittedI = i;
                hittedJ = j;
                break;
              }
            }
            return;
          }
        }
      }
      else if (i % 2 == 1)
      {
        for (int j = 0; j < 7; j++)
        {
          if (isCollided(nowX, nowY, 8 + j * 16 + 8, i * 14 + 8) &&
              roundPara[i][j] > 0 && roundPara[i][j] < 9)
          {

            for (int m = 1; m <= v; m++)
            {

              preX = startX +
                  ( (timeCount - 1) * v + m) * angleCosValue / 100000;
              preY = startY -
                  ( (timeCount - 1) * v + m) * angleSinValue / 100000;
              if (isCollided(preX, preY, 8 + j * 16 + 8, i * 14 + 8))
              {
                hitted = true;
                nowX = preX;
                nowY = preY;
                hittedI = i;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色天天综合色天天久久| 91啪九色porn原创视频在线观看| 欧美一区二区在线看| 五月天激情小说综合| 欧美一区二区三区啪啪| 免费在线看一区| 色天使久久综合网天天| 中文字幕成人av| 91麻豆免费观看| 亚洲一二三四区不卡| 在线播放日韩导航| 精久久久久久久久久久| 中文字幕日本不卡| 欧美挠脚心视频网站| 久久99精品久久久| ...av二区三区久久精品| 欧美精品在线观看一区二区| 久久精品99久久久| 日韩理论在线观看| 51精品国自产在线| 成人精品免费视频| 亚洲gay无套男同| 国产欧美一区二区精品仙草咪| 色老汉av一区二区三区| 久久99国内精品| 亚洲丝袜精品丝袜在线| 日韩欧美精品在线视频| 99视频一区二区| 捆绑调教一区二区三区| 中文字幕五月欧美| 日韩欧美另类在线| 日本韩国视频一区二区| 国产一区二区视频在线| 亚洲综合一区二区三区| 久久精品视频免费| 欧美疯狂做受xxxx富婆| 成人av网址在线观看| 久久激情综合网| 亚洲女女做受ⅹxx高潮| 国产欧美精品国产国产专区| 欧美日韩色综合| av在线免费不卡| 久久电影网站中文字幕| 亚洲国产日韩在线一区模特| 亚洲国产精品传媒在线观看| 91精品免费在线观看| 色诱亚洲精品久久久久久| 韩国v欧美v日本v亚洲v| 亚洲一区二区视频| 亚洲婷婷综合久久一本伊一区 | 91日韩一区二区三区| 激情综合网最新| 日韩在线观看一区二区| 一区二区三区四区不卡在线| 国产欧美一区二区精品婷婷| 欧美成人精品高清在线播放| 欧美片在线播放| 91色婷婷久久久久合中文| 丁香五精品蜜臀久久久久99网站| 美女被吸乳得到大胸91| 日韩成人伦理电影在线观看| 一区二区三区在线视频免费| ㊣最新国产の精品bt伙计久久| 国产午夜久久久久| 国产亚洲自拍一区| 国产日本欧美一区二区| 久久久久国产一区二区三区四区| 91精品国产综合久久国产大片| 欧美在线视频日韩| 欧美综合一区二区| 欧美偷拍一区二区| 日本一区二区三级电影在线观看 | 9191成人精品久久| 日韩欧美在线一区二区三区| 欧美色欧美亚洲另类二区| 欧美日韩在线三区| 色素色在线综合| 欧美性一二三区| 欧美精品v国产精品v日韩精品| 欧美丝袜自拍制服另类| 7777精品伊人久久久大香线蕉最新版| 欧美日韩免费观看一区三区| 欧美日韩国产天堂| 日韩欧美一二三四区| 久久在线观看免费| 欧美国产精品专区| 亚洲嫩草精品久久| 爽好久久久欧美精品| 麻豆精品视频在线| 国产激情精品久久久第一区二区 | 综合av第一页| 亚洲一区二区黄色| 麻豆成人久久精品二区三区小说| 久色婷婷小香蕉久久| 国产精品123| 91在线你懂得| 欧美高清精品3d| 久久无码av三级| 亚洲人吸女人奶水| 视频一区中文字幕| 国产一区二区看久久| 色综合视频在线观看| 在线成人免费视频| 日本一区二区三区在线观看| 一区二区欧美国产| 日本成人在线不卡视频| 国产乱人伦偷精品视频不卡| 99久久久国产精品| 欧美一区二区三区婷婷月色| 中文字幕 久热精品 视频在线| 一区二区三区国产精华| 久久精品国产精品青草| 91无套直看片红桃| 欧美一区二区二区| 亚洲欧美日韩在线播放| 久久99热狠狠色一区二区| 91香蕉国产在线观看软件| 日韩午夜激情av| 日韩一区国产二区欧美三区| 国产精品亚洲午夜一区二区三区| 奇米亚洲午夜久久精品| 99精品偷自拍| 精品少妇一区二区三区免费观看| 美国精品在线观看| 91蝌蚪porny九色| 久久久一区二区三区| 偷偷要91色婷婷| 91在线视频官网| 2024国产精品视频| 天天综合色天天综合色h| 成人av电影在线网| 精品电影一区二区三区| 亚洲午夜久久久久中文字幕久| 国产寡妇亲子伦一区二区| 制服丝袜av成人在线看| 伊人一区二区三区| av网站免费线看精品| 久久久精品国产99久久精品芒果 | 欧美一级高清大全免费观看| 亚洲精品综合在线| 成人一道本在线| 久久精品这里都是精品| 日韩av网站免费在线| 欧美日韩在线不卡| 国产精品久久久久一区| 国产中文字幕精品| 日韩西西人体444www| 日韩电影免费一区| 欧美色图一区二区三区| 亚洲男人的天堂一区二区| 成人免费视频一区二区| 国产欧美一区二区三区鸳鸯浴| 九色|91porny| 91精品国产色综合久久| 日韩国产在线观看一区| 欧美久久高跟鞋激| 日欧美一区二区| 天使萌一区二区三区免费观看| 成人一区在线观看| 五月天欧美精品| 日韩欧美中文字幕精品| 精品一区二区在线免费观看| 久久99精品国产.久久久久久| 亚洲一区二区三区三| 欧美精品一二三| 97精品电影院| 亚洲一区二区美女| 在线观看日韩高清av| 中文天堂在线一区| 成人app软件下载大全免费| 国产欧美日韩精品在线| 国产白丝网站精品污在线入口 | 欧美日韩www| 日韩不卡一区二区| 欧美不卡一区二区三区| 美女网站一区二区| 精品入口麻豆88视频| 国产精品一区专区| 中文字幕一区二区三区四区 | 制服.丝袜.亚洲.另类.中文| 视频一区中文字幕国产| 91精品欧美综合在线观看最新| 秋霞午夜av一区二区三区| 欧美精品一区二区三| 国产乱码一区二区三区| 国产精品情趣视频| 欧美性一区二区| 久久精品99久久久| 国产精品热久久久久夜色精品三区 | 伊人色综合久久天天人手人婷| 欧美性xxxxxxxx| 蜜臀a∨国产成人精品| 欧美激情一区二区三区不卡| 色综合久久九月婷婷色综合| 亚洲成人一区二区在线观看| 日韩一级片网址| 在线观看网站黄不卡| 久久激情五月激情| 中文字幕五月欧美| 日韩一区二区精品在线观看|