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

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

?? missiongamehandler.java

?? 一款模擬飛行類游戲的Java源代碼
?? JAVA
字號:
/*  Bomber for Nokia Series 60 Phones    Copyright (C) 2003, 2004  While True, d.o.o.    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA	    For any info contact gorazd@whiletrue.com.*//*==========================================================================; * *  While True, d.o.o. *	 *  File:       MissionGameHandler.java *  Content:    MissionGameHandler class *  Created:    December 2002 *  Created by: gorazd breskvar * ****************************************************************************/package bomber;import javax.microedition.lcdui.*;// =========================================================================;//	Name:	MissionGameHandler class//	Desc:	handles basic plane game// ==========================================================================;public class MissionGameHandler extends BasicGameHandler {    protected GameState    m_game_state;        // reference to game state    protected byte         m_lives;             // lives left    protected GameObject[] m_targets;           // targets to destroy    protected int          m_live_targets;      // number of targets left to kill    protected Plane        m_control;           // plane under player's control    protected GameObject   m_falling_plane;     // falling plane of the player    protected byte         m_state;             // state of the game     protected Point        m_start_point;       // starting point of the game (coordinates)    protected Point        m_enemy_start_point; // starting point for enemy planes    protected int          m_start_angle;       // starting angle    protected int          m_enemy_start_angle; // starting angle of enemy        protected boolean      m_gun_state = false; // special states handling    protected boolean      m_bomb_state = false;// special states handling    protected boolean      m_lives_lost = false;// special states handling    protected int          m_score_board_height;// height at which scoreboard is drawn    protected int          m_enemy_planes;      // number of all enemy planes        protected AIPlane      m_enemy_plane;   // WARN ME?    protected int          m_medal_timer;        protected int          m_starting_plane_blink;    protected int          m_plane_destroyed_timer;        protected int          m_indicator_blink;    protected boolean      m_indicator_on;        static final short     PLANE_DESTROYED_SHOW_TIME = 1000;        static final byte      PLAYING = 0;    static final byte      PLANE_FALLING = 1;    static final byte      PLANE_DESTROYED = 2;    static final byte      WAITING_FOR_START = 3;    static final int       START_PLANE_BLINK = 400;            public MissionGameHandler(GameState gs, GameObject[] targets)     {        init(gs);        m_score_board_height = m_game_state.getHeight() - m_game_state.getResourceManager().getScoreBoard().getHeight(0);        m_game_state.setScreenOptions(0, m_score_board_height);        m_targets = targets;        m_state = WAITING_FOR_START;            }        public void init(GameState gs)     {        m_game_state = gs;        m_lives = 5;        m_enemy_planes = 1 + m_game_state.getDifficultyLevel();        if (m_enemy_planes == 0) m_game_state.disableSpecialState(GameState.ACE);                m_medal_timer = (int)Common.toFP(gs.getMissionData()[0]);        m_start_point = new Point(Common.toFP(gs.getMissionData()[1]), Common.toFP(gs.getMissionData()[2]));        m_start_angle = Common.toFP(gs.getMissionData()[3]);        m_enemy_start_point = new Point(Common.toFP(gs.getMissionData()[4]), Common.toFP(gs.getMissionData()[5]));        m_enemy_start_angle = Common.toFP(gs.getMissionData()[6]);    }            public void buildingDestroyed(Building b)     {        if (m_game_state.isTarget(b))        {            m_game_state.addScore(1);        }        else         {            m_game_state.addScore(-2);            m_game_state.clearSpecialState(GameState.SURGICAL_STRIKE);        }    }        public void tankDestroyed(Tank t)    {        if (m_game_state.isTarget(t) == false)         {            m_game_state.clearSpecialState(GameState.SURGICAL_STRIKE);            m_game_state.addScore(2);        }        else m_game_state.addScore(5);    }    public void zeppelinDestroyed(Zeppelin z)    {        m_game_state.addScore(50);    }            public Object getScroll()     {        switch (m_state)        {            case PLAYING : return m_control;            case WAITING_FOR_START: return m_start_point;            case PLANE_DESTROYED: return null;            case PLANE_FALLING: return m_falling_plane;        }        return null;    }            public byte getScrollType()    {        switch (m_state)        {            case PLAYING : return OBJECT;            case WAITING_FOR_START: return CENTER_POINT;            case PLANE_DESTROYED: return OBJECT;            case PLANE_FALLING: return OBJECT;        }        return OBJECT;    }        public void handle(int delta)     {            if (m_enemy_plane != null && m_enemy_plane.isAlive() == false) m_enemy_plane = null;                        if (m_enemy_plane == null && m_enemy_planes > 0 )            {                m_enemy_planes--;                m_enemy_plane = m_game_state.createAIPlane(1, m_enemy_start_point.x , m_enemy_start_point.y, m_enemy_start_angle, 0);                                              m_enemy_plane.setTarget(m_control);            }                                        if (m_enemy_plane != null)            {                m_indicator_blink += (int)delta;                int blink;                if (m_state == PLAYING)                {                    int distance = m_control.getPos().distance(m_enemy_plane.getPos());                    if (distance < 400 * Common.FIXED)                     {                        blink = (Common.toInt(distance)) * 2;                                            if (m_indicator_blink > blink)                        {                            m_indicator_blink = 0;                            m_indicator_on = !m_indicator_on;                        }                    }                    else                    {                        m_indicator_on = true;                    }                }                else m_indicator_on = true;        }                        m_starting_plane_blink = (int)(m_starting_plane_blink + delta) % START_PLANE_BLINK;            if (m_state == PLANE_FALLING)            {                if (m_falling_plane.isAlive() == false)                {                    m_state = PLANE_DESTROYED;                    m_plane_destroyed_timer = PLANE_DESTROYED_SHOW_TIME;                    m_falling_plane = null;                                    }            }            else if (m_state == PLANE_DESTROYED)            {                m_plane_destroyed_timer -= delta;                if (m_plane_destroyed_timer <= 0) m_state = WAITING_FOR_START;            }                        m_medal_timer -= delta;            Helper.handlePressAnyKey(delta);    }        protected void checkStates()    {        if (m_gun_state == false && m_bomb_state == false && m_lives_lost == false) m_game_state.setSpecialState(GameState.CON_MAN);        else         {            if (m_gun_state == false && m_bomb_state == false) m_game_state.setSpecialState(GameState.KAMIKAZE);            else if (m_gun_state == false) m_game_state.setSpecialState(GameState.BOMBER);            else if (m_bomb_state == false) m_game_state.setSpecialState(GameState.GUNNER);            if (m_lives_lost == false) m_game_state.setSpecialState(GameState.IRON_MAN);        }        if (m_enemy_planes == 0 && (m_enemy_plane == null || (m_enemy_plane != null && m_enemy_plane.isAlive() == false))) m_game_state.setSpecialState(GameState.ACE);        if (m_medal_timer > 0) m_game_state.setSpecialState(GameState.GOLD_MEDAL);    }            public byte isFinished()     {        if (m_lives <= 0) return FAILED;        m_live_targets = 0;        for (int i = 0; i < m_targets.length; i++)        {            if (m_targets[i] != null) m_live_targets++;        }        if (m_live_targets > 0) return NOT_FINISHED;        checkStates();        return SUCCESS;                    }            public void objectDestroyed(GameObject go)     {    }        public void objectInZone(GameObject go)     {    }        public void objectOutsideBounds(byte bounds_type, GameObject go)     {        super.objectOutsideBounds(bounds_type, go);        if ((go == m_control && go instanceof Plane) && (bounds_type == LEFT || bounds_type == RIGHT))        {            ((Plane)go).setBombs((byte)5);        }    }        public void planeDestroyed(Plane p)     {        if (p == m_control) ControlableDestroyed(p);        else m_game_state.addScore(20);    }        private void ControlableDestroyed(GameObject ctrl)     {        if (m_lives > 0)        {            m_lives_lost = true;            m_lives--;            m_state = PLANE_FALLING;            m_falling_plane = m_control.getFallingPlane();        }        else m_control = null;            }        protected int getBombs()    {        if (m_control == null) return 0;        else return m_control.getBombs();    }                private void handleTargets()    {        for (int i = 0; i < m_game_state.getObjectSize(); i++)        {            if ((m_game_state.getGameObject(i).getType() & GameObject.CAN_TARGET) != 0)            {                ((CanTarget)m_game_state.getGameObject(i)).setTarget(m_control);            }        }    }            public void event(byte type, boolean pressed)    {                  if ((m_state == WAITING_FOR_START || m_state == PLANE_FALLING || m_state == PLANE_DESTROYED) && (type == FIRE_A || type == FIRE_B) && pressed )          {                m_control = m_game_state.createPlane(0, m_start_point.x, m_start_point.y, m_start_angle, 0);                              m_state = PLAYING;                handleTargets();          }                    else if (m_state == PLAYING)          {              switch(type)              {                  case UP: m_control.setTurnUp(pressed); break;                  case DOWN: m_control.setTurnDown(pressed); break;                  case FIRE_A: m_control.setBomb(pressed); if (pressed) m_bomb_state = true; break;                  case FIRE_B: m_control.setFire(pressed); if (pressed) m_gun_state = true; break;              }          }    }        public void draw(Graphics g, int x, int y)    {        Drawable icon = m_game_state.getResourceManager().getIcons();        for (int i = 0; i < m_targets.length; i++)        {            if (m_targets[i] == null) continue;            Helper.drawIconAboveObject(g, m_targets[i], icon, 0, x, y);        }                if (m_state == WAITING_FOR_START || m_state == PLANE_FALLING || m_state == PLANE_DESTROYED)        {            Helper.drawPressAnyKey(g, m_game_state.getHeight() - 50, m_game_state.getWidth(), ResourceManager.FONT_YELLOW);                        if (m_state == WAITING_FOR_START)            {                //Helper.drawStringCenter(g, m_game_state.getLevelName(), 14, m_game_state.getWidth(), ResourceManager.FONT_GREEN);                Helper.drawString(g, m_game_state.getLevelName(), 40, 14, ResourceManager.FONT_GREEN);                if (m_starting_plane_blink < START_PLANE_BLINK / 2)                m_game_state.getPlaneDrawable(0).drawImageWithAngle(g, m_start_angle, Common.toInt(m_start_point.x - x), Common.toInt(m_start_point.y - y ));            }        }                    if (m_enemy_plane != null && m_indicator_on)            {                Helper.drawIndicator(g, x, y, m_enemy_plane, 0, 0, m_game_state.getWidth(), m_score_board_height);            }                int icon_y = 10;        icon.drawImage(g, 2, 2, icon_y);        Helper.drawNumber(g, m_live_targets, 16, icon_y + 2, 2);        icon_y += 15;                if (m_enemy_planes > 0 || (m_enemy_plane != null && m_enemy_plane.isAlive() == true))        {            icon.drawImage(g, 3, 2, icon_y);            Helper.drawNumber(g, m_enemy_planes + 1, 16, icon_y + 2, 2);            icon_y += 15;        }                if (m_medal_timer > 0)        {            icon.drawImage(g, 4, 2, icon_y);            Helper.drawNumber(g, Common.toInt(m_medal_timer), 16, icon_y + 2, 2);        }                Helper.drawScoreBoard(g, m_score_board_height, m_game_state.getScore(), m_lives, getBombs());                    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美偷拍另类a∨色屁股| 国产亚洲成av人在线观看导航| 粉嫩久久99精品久久久久久夜 | 99久久久国产精品| 国产精品888| 风间由美一区二区av101| 国产成人久久精品77777最新版本| 国产精品主播直播| 从欧美一区二区三区| 成人app下载| 色综合久久中文综合久久牛| 在线观看视频一区二区欧美日韩| 欧美体内she精高潮| 欧美一区二区三区四区高清| 欧美精品一区二区三区四区| 国产肉丝袜一区二区| 国产精品电影院| 亚洲午夜免费电影| 免费看黄色91| 成人美女视频在线观看| 91成人免费网站| 欧美一区二区三区免费在线看 | 不卡一区二区在线| 色婷婷综合久久久中文一区二区 | 精品日韩成人av| 久久蜜桃av一区二区天堂| 中文字幕在线一区| 亚洲成人av一区二区| 国内精品免费**视频| 成人黄页毛片网站| 欧美日韩精品专区| 久久精品男人天堂av| 亚洲精品国产精品乱码不99 | 欧美一区二区三区白人| 久久久久久久国产精品影院| 亚洲综合一区二区精品导航| 精品亚洲成a人在线观看| 91免费在线视频观看| 日韩精品中文字幕在线不卡尤物| 国产精品福利一区二区| 青青草91视频| 色av一区二区| 26uuu国产在线精品一区二区| 亚洲一区二区视频| 成人性生交大片免费| 日韩欧美黄色影院| 亚洲成a人v欧美综合天堂| 成人高清视频在线| 精品国产一区二区三区忘忧草| 亚洲最新视频在线观看| 国产高清在线观看免费不卡| 91精品黄色片免费大全| 亚洲精品成人精品456| 国产超碰在线一区| 久久亚洲捆绑美女| 免费成人美女在线观看.| 在线观看免费视频综合| 国产精品污网站| 国产一区二区在线观看免费| 91精品国产一区二区三区香蕉| 一区二区三区欧美| 91影院在线免费观看| 国产丝袜美腿一区二区三区| 久久99深爱久久99精品| 日韩三级在线免费观看| 午夜精品福利视频网站| 色偷偷成人一区二区三区91| 亚洲日本电影在线| 91丝袜国产在线播放| 国产精品天天摸av网| 国产成人一区在线| 国产香蕉久久精品综合网| 国产一区二区在线观看视频| 日韩欧美国产午夜精品| 蜜桃精品在线观看| 精品美女在线播放| 久久精品久久综合| 久久亚洲精华国产精华液 | 亚洲欧美激情插| 97se亚洲国产综合自在线不卡| 国产精品久久久久久久久久久免费看| 国产成人精品亚洲日本在线桃色 | 欧美亚洲图片小说| 天堂一区二区在线免费观看| 在线91免费看| 国产又粗又猛又爽又黄91精品| 欧美不卡视频一区| 国产成人aaaa| 亚洲丝袜美腿综合| 欧美日韩不卡在线| 久久99精品国产.久久久久久| 欧美精品一区二区在线观看| 岛国av在线一区| 亚洲午夜成aⅴ人片| 欧美成人性战久久| 成人永久免费视频| 亚洲精品第1页| 日韩精品综合一本久道在线视频| 国产在线不卡视频| 亚洲精品中文字幕乱码三区| 欧美另类久久久品| 国产黄色成人av| 一区二区三区久久| 久久综合久久99| 91在线porny国产在线看| 日日夜夜精品视频免费| 国产欧美一区二区在线观看| 在线视频观看一区| 国产乱理伦片在线观看夜一区| 日韩毛片在线免费观看| 日韩一级片网址| 成人听书哪个软件好| 三级影片在线观看欧美日韩一区二区| 精品国产1区2区3区| 日本精品视频一区二区三区| 久久超碰97中文字幕| 亚洲美女淫视频| 国产欧美一区二区精品性色超碰 | 蜜桃视频一区二区| 亚洲色图欧洲色图婷婷| 26uuu亚洲综合色欧美 | 美女精品一区二区| 亚洲视频免费在线| 久久久久国产精品麻豆ai换脸| 在线免费观看日本一区| 国产传媒日韩欧美成人| 日本在线不卡视频| 亚洲精品高清在线| 国产精品久久久久婷婷| 久久综合色之久久综合| 欧美日韩高清影院| 91久久精品一区二区二区| 国产精品中文欧美| 久久国产乱子精品免费女| 亚洲国产中文字幕在线视频综合| 国产精品女上位| 久久亚洲一级片| 久久综合中文字幕| 日韩亚洲欧美成人一区| 在线播放日韩导航| 欧美日韩久久一区二区| 欧美色图片你懂的| 欧美性一二三区| 色综合久久99| 色哟哟国产精品| 色哟哟一区二区三区| 色婷婷激情久久| 91在线porny国产在线看| 99久久99久久综合| 一本在线高清不卡dvd| 色综合中文综合网| 色成人在线视频| 91社区在线播放| 色综合欧美在线| 一本在线高清不卡dvd| 色综合天天综合网天天看片| 91网站最新网址| 在线亚洲+欧美+日本专区| 日本乱人伦一区| 在线成人午夜影院| 日韩精品在线一区二区| 久久婷婷成人综合色| 久久久久亚洲综合| 国产精品你懂的在线欣赏| 亚洲欧洲国产日本综合| 亚洲精品视频在线看| 亚洲国产aⅴ天堂久久| 日韩福利电影在线| 国产老妇另类xxxxx| 白白色亚洲国产精品| 欧美影院一区二区| 4438亚洲最大| 中文字幕欧美日本乱码一线二线| 日韩一区日韩二区| 亚洲一区二区不卡免费| 麻豆成人av在线| 99久久99久久久精品齐齐| 欧美在线免费视屏| 欧美成人精品高清在线播放| 欧美国产一区在线| 亚洲一二三四区| 国产久卡久卡久卡久卡视频精品| 成人国产精品免费| 91精品在线一区二区| 国产欧美一区二区精品婷婷| 亚洲自拍另类综合| 久久国产精品免费| 在线影视一区二区三区| 精品成人佐山爱一区二区| 亚洲精品久久嫩草网站秘色| 久久99精品国产麻豆婷婷洗澡| 91美女视频网站| 精品久久久久久无| 亚洲综合成人在线| 国产精品一级黄| 欧美日本视频在线| 成人免费一区二区三区在线观看| 男人操女人的视频在线观看欧美| www.综合网.com| 久久综合av免费|