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

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

?? showmap.java

?? 一款jbuilder開發(fā)的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一区二区三区免费野_久草精品视频
日韩三级av在线播放| 欧美日本在线看| 在线一区二区三区四区五区| 91精品国产一区二区人妖| 亚洲欧洲日产国产综合网| 激情图区综合网| 欧美日韩性生活| 国产色婷婷亚洲99精品小说| 男女性色大片免费观看一区二区| 91捆绑美女网站| 久久久青草青青国产亚洲免观| 日韩综合一区二区| 欧美中文字幕久久| 综合激情网...| 国产91精品免费| 精品久久久久久亚洲综合网| 香蕉影视欧美成人| 色狠狠综合天天综合综合| 欧美高清在线视频| 国产精品一区二区在线观看不卡| 制服视频三区第一页精品| 亚洲久草在线视频| 色综合天天综合色综合av| 国产精品沙发午睡系列990531| 国产在线一区二区| 精品久久久久久久人人人人传媒 | 色综合天天性综合| 国产亚洲精品7777| 国产美女av一区二区三区| 欧美不卡在线视频| 精品在线观看视频| 日韩免费电影网站| 韩国精品免费视频| 久久午夜色播影院免费高清| 激情久久五月天| 欧美精品一区二区三区蜜桃 | 午夜精品爽啪视频| 欧美三区在线观看| 婷婷中文字幕一区三区| 欧美日韩激情一区二区| 男人操女人的视频在线观看欧美 | 蜜桃av噜噜一区| 亚洲精品一区二区精华| 国产一区二三区| 国产色一区二区| 色综合欧美在线| 午夜电影网亚洲视频| 91精品国产高清一区二区三区| 免费人成网站在线观看欧美高清| 日韩久久精品一区| 大胆亚洲人体视频| 一区二区三区欧美亚洲| 91精品久久久久久蜜臀| 国产一区二区精品久久91| 国产精品污污网站在线观看| 99在线热播精品免费| 一区二区三区不卡在线观看| 91麻豆精品国产91久久久久| 国产精品一区二区无线| 亚洲欧美激情在线| 91精品国产综合久久香蕉麻豆| 狠狠色丁香久久婷婷综合丁香| 国产精品免费网站在线观看| 日本乱码高清不卡字幕| 日本视频中文字幕一区二区三区| 国产欧美精品一区二区色综合| 91免费小视频| 九九九精品视频| 亚洲三级电影全部在线观看高清| 777奇米成人网| www.色精品| 石原莉奈一区二区三区在线观看| 国产欧美一区二区精品性色| 欧美色网站导航| 国产原创一区二区三区| 亚洲午夜一二三区视频| 国产喂奶挤奶一区二区三区| 欧美亚一区二区| 国产成人精品影视| 午夜精品在线看| 国产精品伦一区二区三级视频| 欧美一区国产二区| 色综合天天综合狠狠| 国产一区二区三区综合| 五月婷婷激情综合| 亚洲欧洲另类国产综合| 久久久亚洲高清| 在线综合亚洲欧美在线视频| 91视频国产观看| 国产999精品久久久久久绿帽| 日本美女一区二区三区视频| 亚洲视频精选在线| 欧美激情一区不卡| 26uuu欧美| 日韩一区二区三区在线| 欧美三级中文字| 91亚洲国产成人精品一区二区三| 国产一区二区三区久久久| 午夜精品福利一区二区三区蜜桃| 亚洲婷婷国产精品电影人久久| 国产日韩欧美高清| 久久久一区二区三区捆绑**| 日韩精品一区二区三区在线观看| 欧美久久久久久久久中文字幕| 91免费观看视频| 99视频精品免费视频| 成人黄色小视频| 国产成人精品午夜视频免费| 国产精品自拍一区| 国产精品一区二区久久不卡| 激情综合一区二区三区| 免播放器亚洲一区| 欧美aaaaaa午夜精品| 麻豆精品在线看| 久久97超碰国产精品超碰| 老司机免费视频一区二区三区| 日韩国产欧美在线视频| 蜜臀av一区二区在线免费观看| 青青青伊人色综合久久| 日本美女视频一区二区| 青娱乐精品在线视频| 久久99这里只有精品| 久久av老司机精品网站导航| 国产主播一区二区| 成人h版在线观看| 成人av第一页| 一本大道久久a久久综合| 欧美网站一区二区| 91精品国产综合久久久蜜臀粉嫩 | 在线观看国产一区二区| 欧美日韩精品一二三区| 正在播放亚洲一区| 久久亚洲综合色一区二区三区| 久久精品人人做人人综合| 国产精品青草久久| 亚洲精品中文字幕在线观看| 亚洲国产综合91精品麻豆| 麻豆一区二区在线| 国产98色在线|日韩| 91视频在线观看| 欧美精品黑人性xxxx| 337p日本欧洲亚洲大胆精品| 亚洲国产电影在线观看| 一区二区免费看| 久久99国内精品| 99久久综合色| 在线播放国产精品二区一二区四区 | 粉嫩一区二区三区在线看| 在线精品亚洲一区二区不卡| 日韩欧美国产一区二区在线播放| 国产人妖乱国产精品人妖| 亚洲欧美日韩小说| 日韩 欧美一区二区三区| 国产成人福利片| 欧美日韩综合在线免费观看| 日韩久久精品一区| 亚洲乱码国产乱码精品精可以看| 日本亚洲免费观看| 99久久婷婷国产综合精品电影| 精品视频在线视频| 国产三级精品在线| 日韩和欧美一区二区| 福利一区二区在线| 欧美高清激情brazzers| 国产精品区一区二区三区| 日本中文字幕一区| 成人免费毛片aaaaa**| 欧美肥妇bbw| 中文字幕一区二区三区乱码在线 | 亚洲乱码日产精品bd| 麻豆一区二区在线| 欧美性猛片xxxx免费看久爱| 久久精品免视看| 偷拍亚洲欧洲综合| aa级大片欧美| 国产欧美日本一区视频| 久久不见久久见免费视频1| 欧美人与性动xxxx| 亚洲裸体xxx| 成人自拍视频在线| 2023国产一二三区日本精品2022| 性做久久久久久久免费看| 91麻豆视频网站| 国产精品久久久久久亚洲毛片 | 精品久久久久一区| 亚洲午夜精品久久久久久久久| 成人免费毛片高清视频| 久久久久久免费| 狠狠色综合播放一区二区| 欧美一区二区三区婷婷月色| 午夜精品福利久久久| 在线观看视频一区| 伊人色综合久久天天| 不卡的av中国片| 国产精品女人毛片| 国产成人综合精品三级| 欧美成人a视频| 美女性感视频久久| 精品欧美一区二区三区精品久久| 轻轻草成人在线|