⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 score.java

📁 DOJA平台赛车游戏
💻 JAVA
字号:
/*
 * @(#)Score.java    1.0 04/07/01 @(#)
 *
 * Copyright 2004 NTT DoCoMo, Inc. All rights reserved.
 */
import java.io.InputStream;
import java.io.OutputStream;

import javax.microedition.io.Connector;

/** 
 * Score<BR>
 * The class which manages the current score and the hi-score.
 * <p>
 * @version 1.0
 * </p>
 */
public class Score {
    /** Point */
    private static final int BASE_POINT = 50;
    /** Score */
    private int score;
    /** Hi-Score */
    private int hi_score;
    /** Ranking */
    private int[] scoreRanking;
    /** Preservation number of cases */
    public static final int COUNT_SCORE_RANKING = 5;
    /** Now ranking */
    private int ranking;
    /** Existence of updating */
    private boolean rankUp;

    /**
     * Constructor.
     */
    public Score() {
        reset();
        hi_score = 0;
        scoreRanking = new int[COUNT_SCORE_RANKING];
        for (int i = 0; i < COUNT_SCORE_RANKING; i++) {
            scoreRanking[i] = 0;
        }
        load();
    }

    /**
     * Initialization
     */
    public void reset() {
        score = 0;
        ranking = COUNT_SCORE_RANKING - 1;
        rankUp = false;
    }

    /**
     * Adds <code>BASE_POINT</code> to the score.
     */
    public void add() {
        add(BASE_POINT);
    }

    /**
     * Adds <code>_point</code> to the score.
     * @param _point The value to add
     */
    public void add(int _point) {
        score += _point;
        if (score > scoreRanking[ranking]) {
            for (int i = 0; i < COUNT_SCORE_RANKING; i++) {
                if (scoreRanking[i] < score) {
                    ranking = i;
                    rankUp = true;
                    break;
                }
            }

            if (score > hi_score) {
                hi_score = score;
            }
        }
    }

    /**
     * Acquires current score.
     * @return Score
     */
    public int getScore() {
        return score;
    }

    /**
     * Aquires Hi-Score.
     * @return Hi-Score
     */
    public int getHighScore() {
        return hi_score;
    }

    /**
     * Reads Hi-Score saved on the scratchpad.
     */
    public void load() {
        InputStream in = null;
        try {
            in = Connector.openInputStream("scratchpad:///0");

            for (int i = 0; i < COUNT_SCORE_RANKING; i++) {
                scoreRanking[i] = in.read() << 24;
                scoreRanking[i] |= (in.read() << 16);
                scoreRanking[i] |= (in.read() << 8);
                scoreRanking[i] |= in.read();
            }
        } catch (Exception e) {
            for (int i = 0; i < COUNT_SCORE_RANKING; i++) {
                scoreRanking[i] = 0;
            }
        } finally {
            try {
                if (null != in) {
                    in.close();
                }
            } catch (Exception e) {
                // NOP
            }
            hi_score = scoreRanking[0];
        }
    }

    /**
     * Writes down Hi-Score on a scratchpad.
     */
    public void save() {
        OutputStream out = null;
        try {
            out = Connector.openOutputStream("scratchpad:///0");

            for (int i = 0; i < COUNT_SCORE_RANKING; i++) {
                if (score > scoreRanking[i]) {
                    for (int j = COUNT_SCORE_RANKING -2; j >= i; j--) {
                        scoreRanking[j+1] = scoreRanking[j];
                    }
                    scoreRanking[i] = score;
                    score = 0;
                }
                out.write((scoreRanking[i] >>> 24) & 0xff);
                out.write((scoreRanking[i] >>> 16) & 0xff);
                out.write((scoreRanking[i] >>> 8) & 0xff);
                out.write(scoreRanking[i] & 0xff);
            }
        } catch (Exception e) {
        } finally {
            try {
                if (null != out) {
                    out.close();
                }
            } catch (Exception e) {
                // NOP
            }
        }
    }

    /**
     * Aquires Score ranking.
     * @return Score ranking
     */
    public int[] getScoreRanking() {
        return scoreRanking;
    }

    /**
     * Aquires current score rank.
     * @return Current score rank
     */
    public int getRanking() {
        return ranking + 1;
    }

    /**
     * Aquires updating existence.
     * @return true:Updating
     */
    public boolean isRankUp() {
        return rankUp;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -