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

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

?? showmap.java

?? 一款jbuilder開發的j2me射擊游戲!
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
package shoot;

import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.*;
import java.util.*;

/**
 * <p>Title: Shoot game from Rex</p>
 * <p>Description: This is a shoot game.</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: SkyPlay</p>
 * @author Kevin
 * @version 1.0
 */

public class ShowMap extends Canvas implements Runnable,CommandListener {
    /**Member var declare*/
    public final static String DB = "ARMOR";
    public final static int PWIDTH = 16;
    public final static int PHEIGHT = 24;

    public static int maxScore = 0;
    public static Effect effect;

    public int screenTurn = 0;
    public Shoot app;
    public Thread thread;

    private boolean appRun = true;

    public static int X;
    public static int Y;
    public static int WIDTH;
    public static int HEIGHT;

    public static boolean keyEnable = true;

    //graphics var
    private Image splash;
    private Image menu,menubar,stage,life;
    private int plen = 9;
    private int menuitem = 1,stageLevel = 1,perLife = 3 * plen;
    final static private int[] mbar = {8,8,32,56};
    final static private int stagePos = 66;
    final static private int lifeLen = 14;

    //upper map var
    private Image upMapImg;
    private int upMapX,upMapY,upMapWidth;
    private boolean divide;

    //nether map var
    private Image downMapImg[] = new Image[3];
    private int current;
    private int change = 0;

    //buffer screen var
    private Image offImg;
    private Graphics offScreen;
    private int offWidth,offHeight;
    private int offScrX,offScrY,upScrHeight;

    //person var
    private Image personImg;
    public int perX,perY;
    private int perMaxY,perMinY,perMaxX,perMinX;
    public int score;
    private boolean perMovable = true;
    public int personCurrent;
    private int upBlock;

    //ogre var
    private Image[][] ogreImg = new Image[2][3];
    private int ogreLife,ogreCount = 30,currentOgre = 1;
    private int ogreX,ogreMinX,ogreMaxX,ogreMoveBlock;
    private int[] ogreY;
    private long ogreCurTime;
    private int oCurrent = 0, yCurrent = 0;
    private boolean ogreAlive,ogreDirect;
    private int showInterval = 0;

    //bullet var
    private Random random;
    private Vector ogreBulletVector;
    private Timer timer;
    private Vector bulletVector;
    private int bulletMax,moveTime;
    private int timeInterval;
    private long curTime;
    private Image fireImg[] = new Image[2];
    public int[][] bulletList = {{0,0,15},{15,1,13},{28,2,11},{39,3,9},{48,4,7},{55,5,5}};

    //temporary var
    private BulletTrace btTmp = null;

    public ShowMap(Shoot application,Effect eff) {
        app = application;
        effect = eff;
        try{
            init();
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    private void init() throws Exception {
        X = 0;
        Y = 0;
        WIDTH = getWidth();
        HEIGHT = getHeight();

        offWidth = getWidth() < 101 ? getWidth():101;
        offHeight = getHeight() < 80 ? getHeight():80;
        offImg = Image.createImage(offWidth,offHeight);
        offScreen = offImg.getGraphics();
        offScrX = (WIDTH - 101)/2;
        offScrY = (HEIGHT - 80)/2;

        upMapImg = Image.createImage("/shoot/bkg.png");
        upBlock = 5;

        for(int i = 1 ; i < 4 ; i++){
            downMapImg[i - 1] = Image.createImage("/shoot/map"+i+".png");
        }

        personImg = Image.createImage("/shoot/man.png");
        perMinX = 5;
        perMaxX = offWidth - PWIDTH - 5;
        perMinY = 5;
        perMaxY = offHeight - PHEIGHT - 5;

        for(int i = 0; i< 2 ; i++){
            for(int j = 0; j < 3 ; j++){
                ogreImg[i][j] = Image.createImage("/shoot/ogre"+i+j+".png");
            }
        }
        int w,h;
        w = ogreImg[ogreImg.length - 1][ogreImg[0].length - 1].getWidth();
        h = ogreImg[ogreImg.length - 1][ogreImg[0].length - 1].getHeight();
        ogreMaxX = offWidth - w - ogreMoveBlock;
        ogreMinX = ogreMoveBlock;
        ogreY = new int[3];
        ogreY[0] = 15;    //small ogre image
        ogreY[1] = 20;   //medial ogre image
        ogreY[2] = 25;   //large ogre image
        ogreBulletVector = new Vector();
        random = new Random();

        fireImg[0] = Image.createImage("/shoot/fire0.png");
        fireImg[1] = Image.createImage("/shoot/fire1.png");
        bulletVector = new Vector();
        bulletMax = 20;
        timer = new Timer();
        curTime = System.currentTimeMillis();

        loadData();

        this.setCommandListener(this);
        this.addCommand(new Command("ExitGame",Command.EXIT,1));
        effect.playSound(0);
        splashPaint();
        repaint2();
    }

    public void loadData(){
        RecordStore rs = null;
        try{
            rs = RecordStore.openRecordStore(DB,true);
            if(rs.getNumRecords() == 0){
                resetGame();
                saveData(true);
                System.out.println("DB not existed!");
            }else{
                byte[] bData = rs.getRecord(1);
                ByteArrayInputStream bais = new ByteArrayInputStream(bData);
                DataInputStream dis = new DataInputStream(bais);
                upScrHeight = dis.readInt();
                divide = dis.readBoolean();
                upMapX = dis.readInt();
                upMapY = dis.readInt();
                current = dis.readInt();
                perX = dis.readInt();
                perY = dis.readInt();
                score = dis.readInt();
                maxScore = dis.readInt();
                personCurrent = dis.readInt();
                ogreMoveBlock = dis.readInt();
                ogreCount = dis.readInt();
                currentOgre = dis.readInt();
                ogreAlive = dis.readBoolean();
                ogreDirect = dis.readBoolean();
                moveTime = dis.readInt();
                timeInterval = dis.readInt();
                stageLevel = dis.readInt();
                perLife = dis.readInt();
                System.out.println("DB existed!");
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public void resetGame(){
        //upper part screen height
        upScrHeight = 50;////
        //upper part map data
        divide = false;////
        upMapX = (upMapImg.getWidth() - offWidth)/2;////
        upMapY = (upMapImg.getHeight() - upScrHeight)/2;////
        //nether part map num
        current = 0;////
        //person position data
        perX = (offWidth - PWIDTH)/2;////
        perY = (offHeight + PHEIGHT)/2;////
        score = 0;////
        //maxScore = 0;////
        personCurrent = 0;////
        //ogre data
        ogreMoveBlock = 10;////
        ogreCount = 30 ;////
        currentOgre = 1;////
        ogreAlive = false;
        ogreDirect = true;
        //time interval data
        moveTime = 100;////
        timeInterval = 100;////
        stageLevel = 1;
        perLife = 3 * plen;
        ogreCount = 30;
    }

    public void saveData(boolean add){
        RecordStore rs = null;
        try{
            rs = RecordStore.openRecordStore(DB,true);
            ByteArrayOutputStream baos=new ByteArrayOutputStream();
            DataOutputStream dos=new DataOutputStream(baos);
            dos.writeInt(upScrHeight);
            dos.writeBoolean(divide);
            dos.writeInt(upMapX);
            dos.writeInt(upMapY);
            dos.writeInt(current);
            dos.writeInt(perX);
            dos.writeInt(perY);
            dos.writeInt(score);
            if(score > maxScore) maxScore = score;
            dos.writeInt(maxScore);
            dos.writeInt(personCurrent);
            dos.writeInt(ogreMoveBlock);
            dos.writeInt(ogreCount);
            dos.writeInt(currentOgre);
            dos.writeBoolean(ogreAlive);
            dos.writeBoolean(ogreDirect);
            dos.writeInt(moveTime);
            dos.writeInt(timeInterval);
            dos.writeInt(stageLevel);
            dos.writeInt(perLife);
            byte[] bData = baos.toByteArray();
            if(add){
                rs.addRecord(bData,0,bData.length);
            }else{
                rs.setRecord(1,bData,0,bData.length);
            }
            //System.out.println("save data length:"+bData.length);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    private void moveMap(int direction){
        switch (direction) {
            case UP:
                perMovable = (perY > perMinY);
                if(perMovable){
                    /*if(this.upScrHeight < 50) {
                        this.upScrHeight += upBlock/2;
                        upMapY -= upBlock/2;
                    }*/
                    perY = (perY - upBlock) < perMinY ? perMinY:(perY - upBlock);
                    if(perY < 20) {
                        BulletTrace.ySc = 3;
                        OgreBullet.ySc = 0;
                    }
                }else{
                    upMapY = (upMapY >= upBlock) ? (upMapY - upBlock):0;
                }
                break;
            case DOWN:
                perMovable = (perY < perMaxY);
                if(perMovable){
                    /*if(this.upScrHeight > 40) {
                        this.upScrHeight -= upBlock /2;
                        upMapY += upBlock/2;
                    }*/
                    perY = (perY + upBlock) > perMaxY ? perMaxY:(perY + upBlock);
                    if(perY > 20) {
                        BulletTrace.ySc = - 4;
                        OgreBullet.ySc = 6 ;
                    }
                }else{
                    upMapY = (upMapImg.getHeight() - upMapY) > upScrHeight ? (upMapY + upBlock):
                             (upMapImg.getHeight() - upScrHeight);
                }
                break;
            case LEFT:
                perMovable = perX > perMinX;
                if(perMovable){
                    perX = (perX - upBlock) < perMinX ? perMinX:(perX - upBlock);
                    if(perX < 40){
                        BulletTrace.xSc = 2;
                    }
                }else{
                    moveBullet(upBlock);
                    ogreX += upBlock;
                    if(ogreX > upMapImg.getWidth()){
                        ogreX -= upMapImg.getWidth();
                    }
                    if (divide){
                        upMapX -= upBlock;
                        upMapWidth += upBlock;
                        if(upMapWidth >= offWidth){
                            upMapWidth = offWidth;
                            divide = false;
                        }
                    }else{
                        if(upMapX >= upBlock){
                            upMapX -= upBlock;
                        }else{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合一区二区| 日韩一级精品视频在线观看| 精品一区二区三区视频在线观看| 亚洲日本成人在线观看| 日本一区二区三区免费乱视频| 欧美成人精品福利| 精品国产精品网麻豆系列| 欧美一区二区久久久| 欧美一区二区三区喷汁尤物| 欧美日韩一二三区| 正在播放亚洲一区| 日韩三级精品电影久久久| 日韩精品一区二区三区视频在线观看| 欧美一级日韩不卡播放免费| 日韩精品在线一区| 国产欧美精品一区aⅴ影院 | 日韩一区和二区| 91精品国产高清一区二区三区蜜臀 | 午夜国产精品影院在线观看| 婷婷中文字幕综合| 九一久久久久久| 成人午夜电影久久影院| 色狠狠色狠狠综合| 这里只有精品电影| 国产欧美视频在线观看| 国产调教视频一区| 一区二区三区不卡视频| 蜜臀av性久久久久蜜臀aⅴ| 国模套图日韩精品一区二区| av一本久道久久综合久久鬼色| 91久久免费观看| 日韩欧美视频一区| 久草精品在线观看| 波多野结衣精品在线| 欧美三级欧美一级| 国产日本欧美一区二区| 亚洲狠狠爱一区二区三区| 韩国三级中文字幕hd久久精品| 丁香亚洲综合激情啪啪综合| 欧美无砖专区一中文字| 久久久久久麻豆| 亚洲国产乱码最新视频| 高清视频一区二区| 欧美日韩免费视频| 国产精品全国免费观看高清| 天堂成人免费av电影一区| 成人激情免费网站| 日韩免费电影一区| 亚洲成人先锋电影| 成人激情黄色小说| 久久综合丝袜日本网| 日韩影院在线观看| 91九色02白丝porn| 国产精品毛片高清在线完整版| 日韩激情在线观看| 在线观看av一区二区| 中文字幕在线不卡视频| 国产麻豆91精品| 日韩情涩欧美日韩视频| 五月天视频一区| 91久久奴性调教| 中文字幕在线不卡一区 | 一区二区三区在线不卡| 国产不卡视频在线播放| 精品国产乱码久久久久久图片| 亚洲国产日韩在线一区模特| 91视频免费看| 18成人在线视频| 99综合影院在线| 中文字幕在线免费不卡| 国产成人自拍在线| 国产亚洲精品bt天堂精选| 九九热在线视频观看这里只有精品 | 国产成人精品网址| www国产成人| 激情亚洲综合在线| 久久久久久久电影| 国产风韵犹存在线视精品| 国产欧美一区二区三区沐欲 | 色婷婷综合久久久| 亚洲色图在线看| 91福利在线观看| 午夜精品久久久久久久99水蜜桃| 色老综合老女人久久久| 一区二区三区日韩欧美| 欧美日韩五月天| 免费久久99精品国产| 日韩一级高清毛片| 国产一区二区视频在线| 国产视频亚洲色图| 不卡的电影网站| 亚洲一区二区在线观看视频| 7777精品伊人久久久大香线蕉| 午夜精品久久久久久久| 日韩美一区二区三区| 国产麻豆精品久久一二三| 中文字幕一区二区三区在线不卡| 色综合天天综合色综合av| 亚洲成人激情av| 精品久久久三级丝袜| 不卡的电视剧免费网站有什么| 樱桃视频在线观看一区| 日韩一级成人av| 成人午夜激情在线| 五月婷婷综合在线| 久久久久88色偷偷免费| 一本大道久久a久久精二百| 日韩电影免费在线看| 欧美极品美女视频| 欧美中文字幕一区二区三区亚洲| 老司机精品视频一区二区三区| 最好看的中文字幕久久| 欧美一区二区三区啪啪| 99久久精品国产导航| 日韩高清一区在线| 中文字幕中文在线不卡住| 91麻豆精品国产91久久久更新时间| 国产精品香蕉一区二区三区| 一片黄亚洲嫩模| 久久精子c满五个校花| 在线观看成人小视频| 风间由美一区二区av101| 秋霞av亚洲一区二区三| 亚洲欧美成人一区二区三区| 久久亚洲一区二区三区四区| 在线免费精品视频| 国产麻豆精品在线| 青青草一区二区三区| 亚洲视频在线观看一区| 久久久亚洲欧洲日产国码αv| 欧美唯美清纯偷拍| 91小视频在线观看| 国产精品911| 毛片基地黄久久久久久天堂| 亚洲二区在线观看| 一区二区三区在线视频播放| 欧美激情在线一区二区| 久久精品亚洲麻豆av一区二区| 欧美一区二区视频网站| 91成人免费在线| 99久久夜色精品国产网站| 国产aⅴ综合色| 国产成人在线网站| 极品美女销魂一区二区三区免费| 亚洲一区二区视频| 中文字幕欧美一| ●精品国产综合乱码久久久久| 久久综合九色综合欧美就去吻| 欧美一区二区三区男人的天堂| 欧美日韩精品电影| 欧美老女人第四色| 欧美日韩精品免费| 91精品国产综合久久香蕉的特点| 欧洲色大大久久| 欧美亚洲另类激情小说| 91久久国产最好的精华液| 一本色道久久综合亚洲91| 波多野结衣在线一区| 99久久国产综合精品麻豆| proumb性欧美在线观看| 99久久精品免费看| 欧美中文字幕一二三区视频| 欧美午夜精品一区二区蜜桃| 欧美日韩免费高清一区色橹橹 | 欧美日韩综合色| 欧美日韩夫妻久久| 日韩亚洲欧美高清| 久久免费美女视频| 国产精品国产自产拍高清av王其| 国产精品久久久久一区二区三区共 | 国产精品国产三级国产三级人妇| 国产精品人妖ts系列视频| 成人免费在线视频观看| 亚洲午夜av在线| 久久9热精品视频| 国产乱淫av一区二区三区| 99这里只有精品| 欧美色综合网站| 欧美videos大乳护士334| 国产精品区一区二区三区| 亚洲午夜日本在线观看| 日本在线不卡视频| 福利一区福利二区| 色国产综合视频| 欧美成人a∨高清免费观看| 国产精品国产三级国产aⅴ入口| 亚洲免费毛片网站| 伦理电影国产精品| 一本大道久久a久久综合| 日韩欧美国产综合一区| 国产精品福利一区| 琪琪久久久久日韩精品| 99久久精品国产网站| 91精品国产福利在线观看| 国产精品家庭影院| 久久se精品一区二区| 91国产丝袜在线播放| 久久久久久久久久久99999| 香蕉久久一区二区不卡无毒影院| 国产传媒日韩欧美成人|