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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? maincanvas.java

?? 格斗類小游戲 沒什么好說的了 真的真的
?? JAVA
字號:
//package bushfighting;

import java.io.IOException;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import com.nokia.mid.ui.FullCanvas;

//街舞秀的游戲主界面類
public class MainCanvas extends FullCanvas implements Runnable {
    //private Image mPauseImage = null;
    private Image mEndImage = null;//游戲結(jié)束的圖片
    private Image mWinImage = null;
    private boolean mRunning = false; //是否正在運(yùn)行的標(biāo)志
    private boolean mPaused = false; //游戲是否暫停的標(biāo)志
    
    private Image mBGImage = null; //用作后臺(tái)繪制的緩沖區(qū)
    private Graphics mBGraphics = null; //
    private int mCanvasWidth, mCanvasHeight; //場景的大小
    private int mPauseIndex = 0; //菜單的當(dāng)前選擇項(xiàng)
    
    private int mGameState = 0; //0表示顯示殺敵數(shù)目的提示對話框,1表示開始游戲開始
    private int mLevel = 1; //當(dāng)前的關(guān)號
    
    private SceneModel mSceneModel = null;
    private Score mScore = null; //所得到的分?jǐn)?shù)
    private InfoForm mInfoForm = null;
    private NetDataForm mDataForm = null; //用于提示用戶輸入信息
    private MainMenu mMenu = null;
    private DisplayManager mDisplayManager = null;
    
    private java.util.Random mRandom = new java.util.Random(System.currentTimeMillis());
    private static final int TICKTIME = 130; //每個(gè)周期的時(shí)間,單位毫秒
    private static final int MAX_LEVEL = 5;
    
    public MainCanvas(MainMenu menu, NetDataForm dataForm, Score score, Image bufferImg) {
        mCanvasWidth = getWidth();
        mCanvasHeight = getHeight();
        mMenu = menu;
        mDataForm = dataForm;
        mScore = score;
        mBGImage = bufferImg;
        if (mBGImage == null)
            mBGImage = Image.createImage(mCanvasWidth, mCanvasHeight);
        mBGraphics = mBGImage.getGraphics();
        mSceneModel = new SceneModel(mCanvasWidth,mCanvasHeight,mScore);
    }
    
    //初始化游戲環(huán)境
    public void init() {
        try {
            mEndImage = HF.loadImage("end.png");
            mWinImage = HF.loadImage("win.png");
            //mPauseImage = HF.loadImage("pause.png");
        } catch (Exception e) {
            System.out.println("error loading the scene images");
        }
    }
    
    public void setDisplayManager(DisplayManager manager) {
        mDisplayManager = manager;
    }
    
    //繪制游戲
    protected void paint(Graphics g) {
        
        mBGraphics.setColor(HF.COLOR_LIGHTBLUE);
        mBGraphics.fillRect(0, 0, mCanvasWidth, mCanvasHeight);
        
        drawAnimation(g);
        if (mRunning == false&&mSceneModel.isGameOver() == true) {
            int x = mCanvasWidth - mEndImage.getWidth();
            int y = mCanvasHeight - mEndImage.getHeight();
            g.drawImage(mEndImage, x / 2, y / 2, Graphics.LEFT | Graphics.TOP);
        } else if (mRunning == false&&mSceneModel.isPassLevel() == true) {
            if(mLevel== MAX_LEVEL){
                int x = mCanvasWidth - mWinImage.getWidth();
                int y = mCanvasHeight - mWinImage.getHeight();
                g.drawImage(mWinImage, x / 2, y / 2, Graphics.LEFT | Graphics.TOP);
            }
        }
        //g.setColor(0xff0000);
        //g.setFont(HF.SMALL_FONT);
        //g.drawString("試玩版",10,10,Graphics.LEFT|Graphics.TOP);
    }
    
    //重置場景的信息
    private void reset(){
        mRunning = true;
        mPaused = false;
        mScore.reset();
        mLevel = 1;
    }
    //啟動(dòng)游戲線程
    public void start() {
        if(mRunning == true){
            return;//只允許一個(gè)線程運(yùn)行
        }
        reset();
        mLevel =1;
        mSceneModel.loadLevel(mLevel);
        mGameState = 1;
        Thread thread = new Thread(this);
        thread.start();
    }
    
    //暫停處理
    public synchronized void pause() {
        mPaused = true;
        if(HF.sound)
            mSceneModel.back.pause();
        repaint(0, 0, mCanvasWidth, mCanvasHeight);
    }
    
    //恢復(fù)處理
    public synchronized void resume() {
        mPaused = false;
        if(HF.sound)
            mSceneModel.back.resume();
        repaint(0, 0, mCanvasWidth, mCanvasHeight);
    }
    
    //停止游戲
    public void stop() {
        mRunning = false;
    }
    
    //處理游戲進(jìn)行時(shí)用戶的按鍵操作
    public void keyPressed(int keyCode) {
        if (mPaused == true) {
            keyPressPause(keyCode);
            return;
        } else if (keyCode == -6) { //左右上角的按鍵
            pause(); //暫停游戲
            return;
        }
        int action = getGameAction(keyCode);
        if(mGameState == 0){
            if(action == FIRE){
                mGameState = 1;//按確定鍵切換到開始狀態(tài)
                mLevel++;
                if(mLevel <=MAX_LEVEL)
                    mSceneModel.loadLevel(mLevel);
                else{
                    stop();
                }
            }
            return;
        }
        /*
        else
        {
                if(mSceneModel.isTalk == true)
                {
                        mSceneModel.isTalk=false;
                }
        }
         */
        switch (action) {
            case LEFT:
                mSceneModel.setPlayerState(HF.STATE_MOVE_LEFT);
                break;
            case RIGHT:
                mSceneModel.setPlayerState(HF.STATE_MOVE_RIGHT);
                break;
            case UP:
                mSceneModel.setPlayerState(HF.STATE_MOVE_UP);
                break;
            case DOWN:
                mSceneModel.setPlayerState(HF.STATE_MOVE_DOWN);
                break;
            case FIRE:
                if(mSceneModel.takeRes()){
                    mSceneModel.setPlayerState(HF.STATE_J);
                }else{
                    mSceneModel.setPlayerState(HF.STATE_ATTACK);
                }
                break;
        }
        //repaint(0, 0, mCanvasWidth, mCanvasHeight);
    }
    
    public void keyReleased(int keyCode) {
        mSceneModel.setPlayerState(HF.STATE_STILL);
    }
    
    //處理游戲暫停時(shí)用戶的按鍵操作
    public void keyPressPause(int keyCode) {
        if (keyCode == -7) { //右上角的按鍵
            resume();
            return;
        }
        if (keyCode == -6) {
            mDisplayManager.setParent(this);
            {
                switch(mPauseIndex) {
                    case 1:
                        mMenu.itemSelected(1);
                        break;
                    case 3:
                        mMenu.itemSelected(3);
                        break;
                    case 4:
                        mDisplayManager.setParent(mMenu);
                        mDisplayManager.back();
                        mMenu.bIsGame = false;
                        break;
                    case 0:
                        resume();
                        break;
                    case 2:
                        HF.sound = !HF.sound;
                        if(!HF.sound) {
                            mSceneModel.back.stop();
                        } else {
                            mSceneModel.back.play();
                        }
                        break;
                }
            }
            return;
        }
        int action = getGameAction(keyCode);
        System.out.println("暫停選擇"+mPauseIndex);
        switch (action) {
            case DOWN:
                mPauseIndex = (mPauseIndex + 1) % 5;
                repaint(0, 0, mCanvasWidth, mCanvasHeight);
                break;
            case UP:
                mPauseIndex = (mPauseIndex + 4) % 5;
                repaint(0, 0, mCanvasWidth, mCanvasHeight);
                break;
            case FIRE:
                mDisplayManager.setParent(this);
                switch(mPauseIndex) {
                    case 1:
                        mMenu.itemSelected(1);
                        break;
                    case 3:
                        mMenu.itemSelected(3);
                        break;
                    case 4:
                        mDisplayManager.setParent(mMenu);
                        mDisplayManager.back();
                        mMenu.bIsGame = false;
                        break;
                    case 0:
                        resume();
                        break;
                    case 2:
                        HF.sound = !HF.sound;
                        if(!HF.sound) {
                            mSceneModel.back.stop();
                        } else {
                            mSceneModel.back.play();
                        }
                        break;
                }
                break;
        }
    }
    
    
    //執(zhí)行游戲的繪制工作
    private void drawAnimation(Graphics g) {
        mSceneModel.draw(mBGraphics);
        //mBGraphics.drawImage(mPauseImage, mCanvasWidth-27, mCanvasHeight - 15, Graphics.LEFT | Graphics.TOP);
        if (mPaused)
            drawPauseMenu(mBGraphics);
        g.drawImage(mBGImage, 0, 0, Graphics.LEFT | Graphics.TOP);
    }
/*
    //繪制場景信息
    private void drawSceneInfo(Graphics g)
    {
 
    }
 */
    //繪制在暫停時(shí)的對話框
    public void drawPauseMenu(Graphics g) {
        g.setFont(HF.MEDIUM_FONT);
        NetDataForm.drawStatusBar(g, HF.COLOR_LIGHTBLUE, "選擇", "繼續(xù)", mCanvasWidth, mCanvasHeight);
        MainMenu.drawMenuList(g, "繼續(xù)游戲&游戲幫助&音樂-"+(HF.sound?"開":"關(guān)")+"&關(guān)于游戲&返回主菜單&", HF.COLOR_LIGHTBLUE, HF.COLOR_BLUE,
                mCanvasWidth, mCanvasHeight, mPauseIndex);
    }
    
    //釋放占用的資源
    public void release() {
        stop();
    }
    
    
    public void tick() {
        mSceneModel.refresh();
    }
    
    //實(shí)現(xiàn)線程的處理工作
    public void run() {
        boolean flag = true; //為了控制游戲的在不斷的暫停和恢復(fù)中保持正常
        long beginTime = System.currentTimeMillis();
        boolean normalStopped = false; //是否正常結(jié)束的標(biāo)志,即不是中途退出
        long timeSpan = 0;
        
        try {
            while (mRunning == true) {
                //System.out.println("運(yùn)行中");
                if (mGameState ==1&&mPaused == false) {
                    long startTime = System.currentTimeMillis();
                    //refresh();
                    tick();
                    repaint(0, 0, mCanvasWidth, mCanvasHeight);
                    serviceRepaints();
                    if(mSceneModel.isGameOver() == true){
                        normalStopped = true;
                        //System.out.println("Game over");
                        stop();
                    } else if (mSceneModel.isPassLevel() == true){
                        if(mLevel== MAX_LEVEL){
                            normalStopped = true;
                        }
                        mGameState = 0;
                        //Thread.sleep(1500);
                    }
                    long timeTaken = System.currentTimeMillis() - startTime;
                    int tickTime = TICKTIME;
                    if (timeTaken < tickTime){
                        Thread.sleep(tickTime - timeTaken);
                    } else{
                        //Thread.yield();
                        Thread.sleep(10);
                    }
                } else {
                    if (flag == true) {
                        timeSpan = System.currentTimeMillis() - beginTime;
                        flag = false;
                    }
                    beginTime = System.currentTimeMillis() - timeSpan;
                    Thread.sleep(50);
                }
            }
            mDisplayManager.setParent(mMenu); //使得可以正?;氐街鞑藛?            if (normalStopped) {
                repaint(0, 0, mCanvasWidth, mCanvasHeight);
                if(mSceneModel.isGameOver()==true||mSceneModel.isPassLevel() == true&&mLevel== MAX_LEVEL)//停頓一下顯示,Game Over
                    Thread.sleep(1500);
            }
            mDisplayManager.back();
            mMenu.bIsGame = false;
        } catch (InterruptedException e) {
        }
    }
    protected void showNotify() {
        //resume();
    }
    boolean bPause = false;
    protected void hideNotify() {
        pause();
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本va欧美va瓶| 久久综合久久久久88| 一区二区三区不卡视频 | 国产91在线|亚洲| 不卡高清视频专区| 国产欧美一区二区精品忘忧草| 懂色av一区二区三区免费看| 91在线观看下载| 欧美精品第1页| 精品一区二区在线免费观看| 3d动漫精品啪啪一区二区竹菊| www.久久精品| 91精品国产福利在线观看| 2020国产精品自拍| 日本大香伊一区二区三区| 麻豆精品一区二区综合av| 一区二区三区中文在线观看| 自拍偷拍国产精品| 丁香亚洲综合激情啪啪综合| 国产精品欧美极品| 欧美亚洲动漫另类| 91在线观看美女| www.亚洲人| 日本精品视频一区二区| 国产精品久久久久一区二区三区 | 国产精品电影一区二区三区| 成人免费av资源| 久久精品理论片| 欧美一区二区免费| 国产午夜亚洲精品羞羞网站| 亚洲一级在线观看| 欧美激情一区二区三区蜜桃视频| 欧美激情综合在线| 26uuu久久天堂性欧美| 亚洲最大成人网4388xx| 欧美午夜在线一二页| 日韩和欧美一区二区| 亚洲特黄一级片| 亚洲日本免费电影| 亚洲男人天堂av网| 国产乱码一区二区三区| 精品免费视频.| 成人av在线播放网站| 青青草国产成人99久久| 亚洲久草在线视频| 麻豆91精品91久久久的内涵| 国产黄人亚洲片| 中文字幕av一区 二区| 午夜视频一区在线观看| 日本aⅴ精品一区二区三区| 九九热在线视频观看这里只有精品| 国产不卡在线一区| 精品久久久久久久一区二区蜜臀| 成人国产精品免费网站| 日韩国产欧美在线播放| 97se狠狠狠综合亚洲狠狠| 国产精品99久久不卡二区| 粉嫩久久99精品久久久久久夜| 最新不卡av在线| 91精品国产一区二区三区蜜臀| 成人av电影免费观看| 国产一区三区三区| 色婷婷久久久综合中文字幕| 精品福利一二区| 日韩精品每日更新| 精品1区2区3区| 色婷婷精品久久二区二区蜜臂av| 欧美在线看片a免费观看| 欧美xxxxx裸体时装秀| 亚洲成a人片在线观看中文| 色综合亚洲欧洲| 亚洲一区在线视频| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲国产成人午夜在线一区| 国产在线精品不卡| 亚洲精品一区二区三区蜜桃下载 | 亚洲日本在线观看| 国产成人精品三级麻豆| 国产精品久久久久久久午夜片| 蜜臀av性久久久久蜜臀aⅴ| 亚洲一区二区在线视频| 欧美性生活一区| 国产欧美一区二区精品久导航| 国产精品一区二区果冻传媒| 亚洲女人小视频在线观看| 一区二区欧美在线观看| 欧美日韩aaa| 久久综合久久99| 国产精品一区二区你懂的| 精品国免费一区二区三区| 欧美一区二区三区成人| 波多野结衣一区二区三区| 久久av中文字幕片| 亚洲成人777| 日韩一级完整毛片| 国产成人在线视频网址| 亚洲男人的天堂在线aⅴ视频| 久久久久久久久97黄色工厂| 91麻豆精品国产| 国产精品国产成人国产三级| 91精品国产麻豆国产自产在线| 99热精品国产| 日韩欧美激情在线| 天天av天天翘天天综合网| 日韩精品专区在线影院观看| 色综合色狠狠综合色| 丰满亚洲少妇av| 粉嫩绯色av一区二区在线观看| 国产一二三精品| 一本在线高清不卡dvd| 偷窥国产亚洲免费视频| 中文字幕国产一区二区| 国产日韩亚洲欧美综合| 欧美经典一区二区| 喷白浆一区二区| 不卡av电影在线播放| 精品乱码亚洲一区二区不卡| 夜夜爽夜夜爽精品视频| 91麻豆精品国产91| 国产日韩成人精品| 欧美日韩一区二区三区四区| 欧美色涩在线第一页| 欧美伊人久久久久久久久影院| 久久免费偷拍视频| 国产91在线观看丝袜| 久久er精品视频| 色激情天天射综合网| 欧美一区二区三区色| 国产精品毛片a∨一区二区三区| 午夜精品久久久久久不卡8050| 337p亚洲精品色噜噜狠狠| 午夜精品一区二区三区电影天堂 | 国产99久久久国产精品潘金网站| 欧美久久久久久久久中文字幕| 3d成人动漫网站| jvid福利写真一区二区三区| 在线一区二区三区| 久久精品在线免费观看| 麻豆成人久久精品二区三区红 | 国产一区二区不卡在线| 91精品婷婷国产综合久久性色 | 国产色综合久久| 丝袜a∨在线一区二区三区不卡| 欧美在线观看禁18| 国产精品免费视频观看| 99久久久久久| 日韩精品国产欧美| 国内精品自线一区二区三区视频| 美女视频第一区二区三区免费观看网站| 综合激情成人伊人| 欧美剧情片在线观看| 亚洲午夜在线电影| 精品视频123区在线观看| 一级中文字幕一区二区| 日韩欧美二区三区| 国产成人免费视频网站高清观看视频| 欧美一区二区三区四区高清 | 亚洲精品国产精华液| 欧美性感一区二区三区| 视频一区二区欧美| 亚洲欧洲av一区二区三区久久| 国产精品乱码一区二三区小蝌蚪| 国内外成人在线| 亚洲国产精品综合小说图片区| 一区二区三区欧美视频| 国产精品传媒在线| 国产日韩欧美不卡在线| 欧美色图天堂网| 色婷婷综合久久久久中文一区二区| 99久久免费视频.com| 成人免费电影视频| 亚洲天天做日日做天天谢日日欢| 国产亚洲欧美激情| 国产亚洲成aⅴ人片在线观看| 国产精品网友自拍| 国产精品每日更新| 亚洲国产精品视频| 亚洲日本在线a| 国产不卡在线一区| 国产一区二三区| 国产在线视频一区二区| 国产成人精品一区二区三区网站观看| 国产黄人亚洲片| 678五月天丁香亚洲综合网| 久久综合狠狠综合久久综合88| 久久免费国产精品 | 午夜精品福利久久久| 亚洲午夜国产一区99re久久| 国产精品免费免费| 综合激情成人伊人| 成人在线一区二区三区| 91精品国产综合久久精品图片 | 亚洲精品视频自拍| 男女视频一区二区| 加勒比av一区二区| 色拍拍在线精品视频8848| 日韩精品中文字幕在线一区| 亚洲不卡一区二区三区| 福利一区二区在线| 国产午夜精品一区二区三区视频|