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

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

?? scorescreen.java

?? 還記得兒時在游戲機上玩坦克大戰嗎?如今這種經典游戲不在游戲機上玩了
?? JAVA
字號:
//------------------------------------------------------------------------------
//                         COPYRIGHT 2008 GUIDEBEE
//                           ALL RIGHTS RESERVED.
//                     GUIDEBEE CONFIDENTIAL PROPRIETARY
///////////////////////////////////// REVISIONS ////////////////////////////////
// Date       Name                 Tracking #         Description
// ---------  -------------------  ----------         --------------------------
// 19JAN2008  James Shen                 	      Initial Creation
////////////////////////////////////////////////////////////////////////////////
//Permission is hereby granted, free of charge, to any person obtaining a copy
//of this software and associated documentation files (the "Software"), to deal
//in the Software without restriction, including without limitation the rights
//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//copies of the Software, and to permit persons to whom the Software is
//furnished to do so, subject to the following conditions:
//
//The above copyright notice and this permission notice shall be included in all
//copies or substantial portions of the Software.
//
//The Software shall be used for Good, not Evil.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
//SOFTWARE.
//Any questions, feel free to drop me a mail at james.shen@guidebee.biz.
//--------------------------------- PACKAGE ------------------------------------
package com.pstreets.game.battlecity;

//--------------------------------- IMPORTS ------------------------------------
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

//[------------------------------ MAIN CLASS ----------------------------------]
////////////////////////////////////////////////////////////////////////////////
//--------------------------------- REVISIONS ----------------------------------
// Date       Name                 Tracking #         Description
// --------   -------------------  -------------      --------------------------
// 19JAN2008  James Shen                 	      Initial Creation
////////////////////////////////////////////////////////////////////////////////
/**
 * Gameover screen.
 * <p>
 * <hr><b>&copy; Copyright 2008 Guidebee, Inc. All Rights Reserved.</b>
 * @version     1.00, 19/01/08
 * @author      Guidebee, Inc.
 */
public final class ScoreScreen extends GameCanvas implements Runnable{
    
    /**
     * Score board image.
     */
    private static Image imgScore=null;
    
    /**
     * black number image from 0 to 9
     */
    private static Image imgNumberWhite=null;
    
    /**
     * red number image from 0 to 9
     */
    private static Image imgNumberRed=null;
            
    
    /**
     * reference to player tank
     */
    private static PlayerTank playerTank=null;

    /**
     * picture drawing x offset.
     */
    private int offsetX=0;
    
    /**
     * picture drawing y offset. to make the image center in the screen.
     */
    private int offsetY=0;
    
    /**
     * where to draw high score.
     */
    private int highScoreX=0;
    
    /**
     * where to draw high score.
     */
    private int highScoreY=0;
    
    /**
     * where to draw player score.
     */
    private int playerScoreX=0;
    
    /**
     * where to draw player score.
     */
    private int playerScoreY=0;
    
    /**
     * where to draw total number.
     */
    private int totalNumberX=0;
    
    /**
     * where to draw total number.
     */
    private int totalNumberY=0;
    
    /**
     * where to draw enemy tank count.
     */
    private int[][] tankNumberPos=new int[4][2];
    
    /**
     * is the game over?
     */
    private boolean isGameOver=false;
    
    //Score screen displays GameScene.enemyTanksCount[] .the following 2
    //variables are used to display the score board animation. each step draw
    //one number change.
    /**
     * the enemytype.
     */
    private int enemyType=0;
    
    /**
     * the index of enemy count.
     */
    private int enemyCount=0;
    
    /**
     * total enemy number killed
     */
    private int totalKilled=0;
    
    
    private int totalKilledIndex=0;
    
    /**
     * the animation thread.
     */
    private Thread animationThread=null;
    
    /**
     * switch screen timer.
     */
    private Timer timer=null;
    
    /**
     * timer task to swith screen.
     */
    private Switch2Screen switchScreen=null;
   
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * Constructor.
     */
    public ScoreScreen() {
        super(false);
        setFullScreenMode(true);
        imgScore=ResourceManager.getInstance()
            .getImage(ResourceManager.SCORE_SCREEN);
        offsetX=(getWidth()-imgScore.getWidth())/2;
        offsetY=(getHeight()-imgScore.getHeight())/2;
        playerTank=Tank.getPlayerTank();  
        imgNumberWhite=ResourceManager.getInstance()
            .getImage(ResourceManager.NUMBER_WHITE);
        imgNumberRed=ResourceManager.getInstance()
            .getImage(ResourceManager.NUMBER_RED);
        highScoreX=getWidth()/2+16;
        highScoreY=offsetY;
        playerScoreX=getWidth()/4;
        playerScoreY=offsetY+35;
        for(int i=0;i<4;i++){
            tankNumberPos[i][0]=playerScoreX;
            tankNumberPos[i][1]=offsetY+50+i*16-1;
        }
        totalNumberX=playerScoreX+40;
        totalNumberY=offsetY+113;
        timer=new Timer();
        switchScreen=new Switch2Screen();
        
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * draw number in score bar
     * @param g the graphics object
     * @param number the number need to be drawn
     * @param x the x coordinate.
     * @param y the y coordinate.
     */
    private void drawNumber(Graphics g, int number,int x,int y,boolean isRed){
        Image imageNumber=null;
        if(isRed){
            imageNumber=imgNumberRed;
        }else{
            imageNumber=imgNumberWhite;
        }
        String strNumber=String.valueOf(number);
        int numberWidth=imageNumber.getHeight();
        for(int i=0;i<strNumber.length();i++){
            char ch=strNumber.charAt(i);
            int index=(ch-'0') % 10;
            Image oneNumber=Image.createImage(imageNumber,index*numberWidth,0,
                    numberWidth,numberWidth,0);
            if(isRed){
                g.drawImage(oneNumber,x+i*numberWidth,y,0);
            }else{
                //right alignment
                g.drawImage(oneNumber,x+(i-strNumber.length()+2)*numberWidth,y,0);
            }
        }
    }
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * Set the game over value. the game over value decides what's next screen
     * shown after Score board screen is discard, either shows the GameOver 
     * screen or the new game.
     * @param gameover true, game is over.
     */
    public void show(boolean gameOver){
        if(ResourceManager.isPlayingSound){
            ResourceManager.playSound(ResourceManager.SCORE_SOUND);
        }
        isGameOver=gameOver; 
        enemyType=0;
        enemyCount=0;
        totalKilled=0;
        for(int i=0;i<4;i++){
            int value=GameScene.enemyTanksCount[i]*(i+1)*100;
            playerTank.addScore(value);
            totalKilled+=GameScene.enemyTanksCount[i];
        }
        totalKilledIndex=totalKilled;
        animationThread=new Thread(this);
        animationThread.start();
    }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * paint.
     * @param g the graphics object.
     */
    public void paint(Graphics g){
        //clear background to black
        g.setColor(0x000000);
        g.fillRect(0,0,getWidth(),getHeight());
        g.drawImage(imgScore,offsetX,offsetY,0);
        drawNumber(g,ResourceManager.highScore,highScoreX,highScoreY,true);
        drawNumber(g,playerTank.getScore(),playerScoreX,playerScoreY,true);
        if(enemyType>3){
            enemyType=3;
        }
        for(int i=0;i<enemyType;i++){
            drawNumber(g,GameScene.enemyTanksCount[i]*100,tankNumberPos[i][0],
                    tankNumberPos[i][1],false);
            drawNumber(g,GameScene.enemyTanksCount[i],tankNumberPos[i][0]+35,
                    tankNumberPos[i][1],false);
        }
        drawNumber(g,enemyCount*100,tankNumberPos[enemyType][0],
                tankNumberPos[enemyType][1],false);
        drawNumber(g,enemyCount,tankNumberPos[enemyType][0]+35,
                tankNumberPos[enemyType][1],false);

        drawNumber(g,totalKilled,totalNumberX,totalNumberY,false);
       
        
     }
    
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 20JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     *  step to draw number.
     */
    public void run(){
        Thread thread=Thread.currentThread();
        if(thread==animationThread){
            while(totalKilledIndex>0 || enemyType<3){
                repaint();
                if(enemyCount>=GameScene.enemyTanksCount[enemyType]){
                    enemyCount=0;
                    enemyType++;
                }
                
                
                try{
                    Thread.sleep(200);
                }catch(Exception e){}
                enemyCount++;
                if(enemyType>3) {
                    enemyType=3;
                    break;
                }
                totalKilledIndex--;
            }
            if(switchScreen!=null){
               switchScreen=null; 
            }
            switchScreen=new Switch2Screen();
            switchScreen.setGameover(isGameOver);
            timer.schedule(switchScreen,2000);
            
        }
        
        
    }
    
}

//
class Switch2Screen extends TimerTask{
       
    private boolean isGameOver=false;
    
     
    void setGameover(boolean gameover){
        isGameOver=gameover;
    }
    ////////////////////////////////////////////////////////////////////////////
    //--------------------------------- REVISIONS ------------------------------
    // Date       Name                 Tracking #         Description
    // ---------  -------------------  -------------      ----------------------
    // 21JAN2008  James Shen                 	          Initial Creation
    ////////////////////////////////////////////////////////////////////////////
    /**
     * run .
     */
    public void run(){
        
         if(isGameOver){
                ResourceManager.gameoverScreen.show();
                ResourceManager.setCurrentScreen(ResourceManager.gameoverScreen);
        }else{
            ResourceManager.gameScene.newGame();
            ResourceManager.setCurrentScreen(ResourceManager.gameScene);
        }
        
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情视频一区二区在线观看| 国产91色综合久久免费分享| 麻豆国产精品777777在线| 国精品**一区二区三区在线蜜桃| 99久久精品免费看| 欧美一区二区免费视频| 中文字幕一区二区三区乱码在线| 日韩精品欧美精品| 91热门视频在线观看| 精品久久一区二区| 亚洲综合丁香婷婷六月香| 国产伦精品一区二区三区免费 | 从欧美一区二区三区| 欧美日韩国产首页| 一区二区三区四区精品在线视频| 国产精品99久久久久久宅男| 91精品国产福利| 亚洲午夜视频在线观看| 91日韩在线专区| 综合av第一页| 成人一区二区三区| 日本一区二区三区久久久久久久久不 | 99久久er热在这里只有精品15| 日韩欧美一级精品久久| 香蕉乱码成人久久天堂爱免费| 91丨porny丨中文| 中文字幕亚洲视频| 成年人午夜久久久| 最新不卡av在线| 99re热这里只有精品免费视频| 国产精品无人区| 91丝袜美女网| 一区二区三区在线观看欧美| 在线观看亚洲一区| 亚洲高清视频在线| 欧美日本在线一区| 美女网站色91| 久久综合中文字幕| 高清shemale亚洲人妖| 国产精品视频免费看| 成人黄色av电影| 亚洲免费资源在线播放| 欧洲精品中文字幕| 日韩中文字幕麻豆| 精品人伦一区二区色婷婷| 加勒比av一区二区| 国产视频一区在线播放| 成人高清在线视频| 亚洲综合色在线| 91麻豆精品国产91久久久资源速度 | 337p粉嫩大胆色噜噜噜噜亚洲| 麻豆精品在线看| 国产日韩欧美麻豆| 色综合久久综合| 日韩国产欧美视频| 国产女人18毛片水真多成人如厕| 99精品视频在线观看免费| 亚洲6080在线| 欧美精品一区二区三区蜜桃| 成人黄色网址在线观看| 一区二区三区色| 日韩欧美一级片| 色视频欧美一区二区三区| 喷水一区二区三区| 亚洲欧洲日韩av| 欧美一区2区视频在线观看| 国产成人高清在线| 日欧美一区二区| 国产精品福利电影一区二区三区四区| 在线精品视频一区二区三四 | 欧美一级二级在线观看| 国产精品456露脸| 亚洲与欧洲av电影| 久久蜜桃一区二区| 欧美日韩欧美一区二区| 国产成人精品影视| 日韩高清不卡一区二区三区| 中国色在线观看另类| 欧美一区二区大片| 欧美性猛交xxxxxx富婆| 成人性生交大片免费看中文| 日韩高清一区二区| 亚洲色图一区二区三区| 久久久美女毛片| 宅男在线国产精品| 在线精品视频一区二区| 成人av网站在线观看| 国模无码大尺度一区二区三区| 亚洲va国产天堂va久久en| 国产精品久久久久久久蜜臀| 精品久久久久久久久久久久包黑料| 色综合欧美在线| 国产ts人妖一区二区| 精品系列免费在线观看| 日韩成人免费看| 天堂av在线一区| 一二三区精品福利视频| 中文字幕一区视频| 国产情人综合久久777777| 日韩一二三四区| 欧美日本韩国一区二区三区视频| 91一区二区三区在线播放| 丁香婷婷综合网| 国产成人在线免费观看| 国产成人av网站| 国产一区二区不卡在线| 国产一区二区主播在线| 精品一区二区在线视频| 看国产成人h片视频| 蜜臀a∨国产成人精品| 青青草成人在线观看| 青青草97国产精品免费观看| 性做久久久久久免费观看| 亚洲第一久久影院| 亚洲精品视频自拍| 亚洲免费观看视频| 夜夜嗨av一区二区三区中文字幕| 成人欧美一区二区三区在线播放| 国产精品久久久一本精品| 中文字幕的久久| 国产精品女上位| 成人免费在线播放视频| 亚洲日本一区二区| 亚洲精品菠萝久久久久久久| 亚洲午夜影视影院在线观看| 日韩电影在线一区| 老司机午夜精品99久久| 国产精品888| 成人激情动漫在线观看| 色综合久久天天| 欧美嫩在线观看| 日韩精品在线一区二区| 26uuu亚洲综合色欧美| 国产精品久久久久9999吃药| 一区二区三区丝袜| 久久精品国内一区二区三区| 国产乱人伦精品一区二区在线观看 | 一区二区三区中文免费| 五月天国产精品| 精品综合免费视频观看| 成人黄色软件下载| 欧美日韩一区二区三区四区五区| 日韩一区二区三区精品视频| 久久众筹精品私拍模特| 国产精品国产三级国产普通话蜜臀 | 久久国产尿小便嘘嘘尿| 成人午夜电影小说| 欧美日韩国产成人在线免费| 精品久久久久久久人人人人传媒| 国产精品成人在线观看| 午夜欧美一区二区三区在线播放| 精品一区二区三区蜜桃| 91在线精品秘密一区二区| 欧美精品成人一区二区三区四区| 久久久精品蜜桃| 亚洲第一成人在线| 成人小视频免费在线观看| 欧美日韩在线直播| 欧美经典一区二区| 日韩精品亚洲专区| 色综合久久综合网欧美综合网| 日韩精品一区二| 亚洲综合一区在线| 国产乱码精品一品二品| 欧美三级在线看| 国产精品午夜春色av| 美国三级日本三级久久99| 99精品视频一区二区| 精品国产伦一区二区三区免费| 亚洲精品乱码久久久久久黑人 | 精品第一国产综合精品aⅴ| 亚洲人123区| 国产精品主播直播| 欧美一级片在线看| 夜夜操天天操亚洲| 丁香婷婷深情五月亚洲| 日韩精品一区二区三区蜜臀| 亚洲成人第一页| 色香色香欲天天天影视综合网| 久久这里只精品最新地址| 麻豆精品久久久| 欧美高清性hdvideosex| 亚洲3atv精品一区二区三区| 91丨九色丨蝌蚪丨老版| 亚洲欧美另类综合偷拍| 波多野结衣精品在线| 国产亲近乱来精品视频 | 亚洲成国产人片在线观看| 91在线视频18| 亚洲欧洲日韩av| 91亚洲午夜精品久久久久久| 国产精品夫妻自拍| 成人av网站在线观看| 国产精品久久影院| 91丝袜美腿高跟国产极品老师| 国产精品免费看片| 91一区在线观看| 一区二区三区四区不卡在线 | 在线一区二区观看| 依依成人综合视频|