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

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

?? gamescene.java

?? 還記得兒時在游戲機上玩坦克大戰嗎?如今這種經典游戲不在游戲機上玩了
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
            type=Powerup.TANK;
        }else if(powupSelection>80){
            type=Powerup.BOMB;
        }else if(powupSelection>70){
            type=Powerup.SHOVEL;
        }else if(powupSelection>60){
            type=Powerup.CLOCK;
        }else if(powupSelection>50){
            type=Powerup.SHIELD;
        }else{
            type=Powerup.STAR;
        }
        Powerup.putNewPowerup(type);
        putPowerupStartTime=System.currentTimeMillis();
        canPutPowerup=false;
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * Game over,either all player tanks or the home has been destroyed.
     */
    private void gameOver(){
        isGameover=true;
        gameStatus.setImage(imgGameover,imgGameover.getWidth(),
                imgGameover.getHeight());
        gameStatus.setVisible(true);
        gameStatus.setPosition(gameStatus.getX(),sceneHeight);
        playerTank.stop();
        
        gameOverStartTime=System.currentTimeMillis();
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * Game logic is here.
     */
    private void applyGameLogic(){
        //normal game sequence.
        long tickTime=System.currentTimeMillis();;
        if(!isGameover){
            //Check if player obtain some powerup.
            Powerup.checkPlayerTank(playerTank);
            //Spawn enemy tank if needed
            boolean canSpawnEnemyTank=false;
            if(enemyTankRemains-EnemyTank.getVisibleEnemyTanks()>0){
                if(EnemyTank.getVisibleEnemyTanks()<10){
                    if(enemySpawnStartTime>0){
                        if(tickTime-enemySpawnStartTime>enemySpawnPeriod){
                            canSpawnEnemyTank=true;
                        }
                    }else{
                        canSpawnEnemyTank=true;
                    }
                }
            }else{
                if(EnemyTank.getVisibleEnemyTanks()==0){
                    ResourceManager.gameLevel++;
                    showScoreScreen();
                }
            }
            if(canSpawnEnemyTank){
                EnemyTank enemyTank=null;
                int tankSelection=Math.abs(rnd.nextInt()) % 100;
                if(tankSelection>90-ResourceManager.gameLevel){
                    enemyTank=EnemyTank.newEnemyTank(EnemyTank.TYPE_HEAVY);
                }else if(tankSelection>75-ResourceManager.gameLevel){
                    enemyTank=EnemyTank.newEnemyTank(EnemyTank.TYPE_SMART);
                }else if(tankSelection>55-ResourceManager.gameLevel){
                    enemyTank=EnemyTank.newEnemyTank(EnemyTank.TYPE_FAST);
                }else {
                    enemyTank=EnemyTank.newEnemyTank(EnemyTank.TYPE_SIMPLE);
                }
                if(enemyTank!=null){
                    
                    tankSelection=Math.abs(rnd.nextInt()) % 100;
                    if(tankSelection+ResourceManager.gameLevel>90){
                        
                        enemyTank.setHasPrize(true);
                    }
                    enemySpawnStartTime=tickTime;
                }
                
            }
            //Check if player has been killed
            if(!playerTank.isVisible()){
                if(playerTank.getAvaiableLives()>0){
                    playerTank.initTank();
                    playerTank.setVisible(true);
                }else{
                    gameOver();
                }
            }
            //Check if home is been destoryed, game over
            if(Powerup.isHomeDestroyed()){
                gameOver();
            }
            //put an poweup in the battle field
            if((tickTime-putPowerupStartTime>putPowerupPeriod) || canPutPowerup){
                putAnPowerup();
            }
        }else{
            //game is over, display game over animation.
            if(((tickTime-gameOverStartTime)<gameOverPeriod) &&
                    gameOverStartTime>0){
                int finalY=(sceneHeight-gameStatus.getHeight())/2;
                if(gameStatus.getY()>finalY){
                    gameStatus.setPosition(gameStatus.getX(),
                            gameStatus.getY()-1);
                }
            }else{
                showScoreScreen();
                gameOverStartTime=0;
            }
            
        }
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * draw the score bar
     * @param g the graphics object.
     */
    private void drawScoreBar(Graphics g){
        
        int offset=8;
        int x,y;
        
        for(int i=0;i<enemyTankRemains-EnemyTank.getVisibleEnemyTanks();i++){
            int changeRow=i>9 ? 1:0;
            x=marginX+(i %10) *imgEnemyIcon.getWidth();
            y=marginY+changeRow*imgEnemyIcon.getWidth();
            g.drawImage(imgEnemyIcon,x,y,0);
        }
        //draw IP
        x=marginX+imgEnemyIcon.getWidth()*10+offset;
        y=marginY;
        int lives=playerTank.getAvaiableLives();
        drawNumber(g,lives,x+imgIP.getWidth()-imgNumberBlack.getHeight(),
                y+imgIP.getHeight()-imgNumberBlack.getHeight());
        g.drawImage(imgIP,x,y,0);
        x+=imgIP.getWidth()+offset;
        y=marginY;
        g.drawImage(imgFlag,x,y,0);
        drawNumber(g,ResourceManager.gameLevel,x+imgFlag.getWidth(),
                y+imgIP.getHeight()-imgNumberBlack.getHeight());
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * clear the back ground.
     * @param g the graphics object.
     */
    private void clearBackground(Graphics g){
        g.setColor(0x808080);
        g.fillRect(0,0,sceneWidth,sceneHeight);
        g.setColor(0x000000);
        g.fillRect(battleFieldX,battleFieldY,
                battleField.getWidth(),battleField.getWidth());
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * paint.
     * @param g the graphics object.
     */
    public void paint(Graphics g){
        //Clear the background.
        clearBackground(g);
        layerManager.paint(g,battleFieldX,battleFieldY);
        drawScoreBar(g);
        if(gameStatus.isVisible()){
            gameStatus.paint(g);
        }
        
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * start the game..
     */
    private synchronized void start() {
        animationThread = new Thread(this);
        animationThread.start();
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * stop the game.
     */
    private synchronized void stop() {
        animationThread = null;
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * run.
     */
    public void run(){
        Thread currentThread = Thread.currentThread();
        
        try {
            while (currentThread == animationThread) {
                long startTime = System.currentTimeMillis();
                // Don't advance game or draw if canvas is covered by a system
                // screen.
                if (isShown()) {
                    tick();
                    repaint();
                }
                timeTaken = System.currentTimeMillis() - startTime;
                if (timeTaken < MILLIS_PER_TICK) {
                    synchronized (this) {
                        if(MILLIS_PER_TICK > timeTaken){
                            wait(MILLIS_PER_TICK - timeTaken);
                            timeTaken = System.currentTimeMillis() - startTime;
                        }
                    }
                } else {
                    Thread.yield();
                }
            }
        } catch (InterruptedException e) {
        }
        
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * show the score screen.
     */
    private void showScoreScreen(){
        resourceManager.scoreScreen.show(isGameover);
        ResourceManager.setCurrentScreen(resourceManager.scoreScreen);
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * key press.
     */
    protected void keyPressed(int keyCode) {
        int gameAction=0;
        if(isGameover){
            
            return;
        }
        switch(keyCode){
            case Canvas.KEY_NUM2:
                gameAction=Canvas.UP;
                break;
            case Canvas.KEY_NUM8:
                gameAction=Canvas.DOWN;
                break;
            case Canvas.KEY_NUM5:
                gameAction=Canvas.FIRE;
                break;
            case Canvas.KEY_NUM4:
                gameAction=Canvas.LEFT;
                break;
            case Canvas.KEY_NUM6:
                gameAction=Canvas.RIGHT;
                break;
                
            default:
                gameAction = getGameAction(keyCode);
        }
        if(!isGameover){
            playerTank.keyPressed(gameAction);
        }
        
    }
    
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * key release.
     */
    protected void keyReleased(int keyCode) {
        int gameAction=0;
        switch(keyCode){
            case Canvas.KEY_NUM2:
                gameAction=Canvas.UP;
                break;
            case Canvas.KEY_NUM8:
                gameAction=Canvas.DOWN;
                break;
            case Canvas.KEY_NUM5:
                gameAction=Canvas.FIRE;
                break;
            case Canvas.KEY_NUM4:
                gameAction=Canvas.LEFT;
                break;
            case Canvas.KEY_NUM6:
                gameAction=Canvas.RIGHT;
                break;
                
            default:
                gameAction = getGameAction(keyCode);
        }
        if(!isGameover){
            playerTank.keyReleased(gameAction);
        }
    }
    
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * tick. one game step.
     */
    private void tick(){
        
        for(int i=0;i<totalLayers;i++){
            Layer layer=layerManager.getLayerAt(i);
            if(layer.isVisible()){
                Actor actor=(Actor)layer;
                
                actor.tick();
            }
        }
        applyGameLogic();
    }
    
    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美探花视频资源| 色成人在线视频| 一区二区三区在线观看动漫| 久久一区二区视频| 欧美电影免费观看高清完整版| 欧美一级国产精品| 日韩一区二区在线观看视频 | 国产成人夜色高潮福利影视| 精品一区二区三区视频在线观看 | 蜜桃视频一区二区三区| 日本大胆欧美人术艺术动态| 日韩成人精品在线| 久草精品在线观看| 国产激情一区二区三区四区| 成人国产精品视频| 日本高清无吗v一区| 在线观看免费一区| 日韩欧美在线不卡| 国产视频亚洲色图| 亚洲女同ⅹxx女同tv| 日韩精品1区2区3区| 韩日欧美一区二区三区| 国产成人亚洲综合a∨婷婷| 91免费小视频| 欧美一区二区三区系列电影| 久久婷婷国产综合国色天香 | 亚洲一区中文在线| 蜜臀av一区二区在线观看| 国产精品系列在线观看| av午夜精品一区二区三区| 欧美视频第二页| 日韩精品一区在线| 亚洲人成精品久久久久久| 日韩一区欧美二区| 成人av网站免费| 欧美一二三区精品| 18欧美亚洲精品| 免费成人你懂的| 色94色欧美sute亚洲线路二| www国产精品av| 亚洲国产视频a| 高清不卡一区二区| 日韩一级成人av| 亚洲精品国产成人久久av盗摄| 久久精品国产99久久6| 色综合天天天天做夜夜夜夜做| 欧美成人官网二区| 一区二区三区蜜桃网| 懂色av中文一区二区三区| 91精品国产综合久久婷婷香蕉| 中文字幕va一区二区三区| 日本三级韩国三级欧美三级| 色偷偷一区二区三区| 久久久久国色av免费看影院| 日韩国产精品久久| 在线观看日产精品| ...av二区三区久久精品| 精品一二线国产| 日韩一级免费观看| 亚洲国产精品久久人人爱 | 欧美三级电影精品| 国产精品久久久久久一区二区三区| 日产国产欧美视频一区精品 | 国产呦精品一区二区三区网站| 欧美日韩国产另类一区| 亚洲一区二区精品视频| 91影视在线播放| 18成人在线视频| 菠萝蜜视频在线观看一区| 一本在线高清不卡dvd| 制服丝袜一区二区三区| 欧美在线综合视频| 3d动漫精品啪啪| 久久久久久夜精品精品免费| 久久国产精品无码网站| 7777精品伊人久久久大香线蕉完整版 | 国产清纯白嫩初高生在线观看91| 日本vs亚洲vs韩国一区三区二区 | 不卡欧美aaaaa| 中文字幕av一区二区三区| 国产成人无遮挡在线视频| 久久综合九色综合97_久久久| 精品亚洲porn| 久久精品在这里| 成人免费视频国产在线观看| 中文一区二区在线观看| 成人一级片在线观看| 中文字幕中文字幕中文字幕亚洲无线| 成人看片黄a免费看在线| 亚洲素人一区二区| 欧美午夜影院一区| 日本欧美在线看| 久久美女高清视频| 成人精品国产一区二区4080| 亚洲欧美色一区| 这里是久久伊人| 国产成人欧美日韩在线电影| 1024国产精品| 91精品国产综合久久精品| 狠狠色狠狠色综合| 综合欧美一区二区三区| 在线观看日韩av先锋影音电影院| 午夜婷婷国产麻豆精品| 久久久精品欧美丰满| 色系网站成人免费| 蜜臀91精品一区二区三区| 亚洲国产精品二十页| 欧美日韩一区二区三区四区| 国产专区综合网| 一区二区三区欧美久久| 精品少妇一区二区三区| 91麻豆蜜桃一区二区三区| 免费国产亚洲视频| 国产精品青草久久| 日韩一区二区免费电影| 91玉足脚交白嫩脚丫在线播放| 毛片av一区二区| 亚洲欧美另类综合偷拍| 久久女同互慰一区二区三区| 在线观看三级视频欧美| 风流少妇一区二区| 日本不卡中文字幕| 洋洋成人永久网站入口| 中文字幕va一区二区三区| 91精品国产色综合久久不卡蜜臀| 波多野结衣91| 国产一区二区视频在线| 午夜激情一区二区三区| 日韩毛片视频在线看| 久久久久久免费| 欧美电影免费观看高清完整版| 欧美午夜精品免费| 99精品桃花视频在线观看| 国产美女视频一区| 日韩精品久久理论片| 亚洲欧美电影院| ...xxx性欧美| 国产精品久久久久国产精品日日| 欧美一级专区免费大片| 欧美日韩你懂的| 在线观看国产一区二区| 91亚洲国产成人精品一区二区三| 国产精品99精品久久免费| 日韩精品电影在线| 视频一区二区欧美| 亚洲自拍偷拍图区| 亚洲六月丁香色婷婷综合久久 | 26uuu国产一区二区三区| 欧美精品久久99| 欧美日精品一区视频| 欧美在线免费视屏| 91视频免费看| 成人av电影在线网| 成人97人人超碰人人99| 99视频一区二区| 色综合欧美在线视频区| 欧美在线观看你懂的| 在线免费不卡电影| 在线精品视频一区二区三四| 91成人免费网站| 91精品国产一区二区三区| 欧美变态口味重另类| 久久影院午夜论| 国产精品久久久久久久久免费桃花| 中文字幕人成不卡一区| 一区二区三区日本| 舔着乳尖日韩一区| 精品亚洲成a人| 成人永久aaa| 欧美在线观看一区| 欧美一级日韩免费不卡| 久久综合九色综合久久久精品综合| 久久久久久久久99精品| 18成人在线观看| 天天av天天翘天天综合网色鬼国产| 日日噜噜夜夜狠狠视频欧美人 | 日韩毛片高清在线播放| 夜夜嗨av一区二区三区网页 | 亚洲综合成人在线视频| 日韩二区三区在线观看| 国产精品一区2区| 欧美在线看片a免费观看| 日韩一二在线观看| 中文字幕精品在线不卡| 亚洲伊人色欲综合网| 国精产品一区一区三区mba桃花| www.一区二区| 日韩一级二级三级精品视频| 国产精品午夜春色av| 日韩二区三区在线观看| 99麻豆久久久国产精品免费| 91麻豆精品国产91久久久使用方法 | 不卡视频一二三四| 欧美久久久久免费| 国产精品久久久久婷婷| 奇米在线7777在线精品| 色国产精品一区在线观看| 26uuu久久综合| 丝袜美腿亚洲色图| av在线一区二区三区|