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

📄 gameswitch.java~1~

📁 J2ME游戏引擎,直接在JBUILDER2006下运行,不包含需要的SDK和虚拟机
💻 JAVA~1~
字号:
import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Font;/** * <p>Title: </p> * <p>Description: </p> * <p>切换页,负责页面之间的切换以及切换时资源的释放和加载, * 并用进度条显示出当前的加载进度。</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * <p>修改记录:</p> * <p><b>Ver 1.0.0  /  Date: 2004-03-30</b><br> * 1.修改方法:public boolean SwitchFrame(GameFrameBase previousFrame, * GameFrameBase nextFrame),具体修改方式,参考该方法的文档。<br> * @author not attributable * @version 1.0.0 */public class GameSwitch extends GameFrameBase{    int m_i_ScreenWidth, m_i_ScreenHeight;    GameFrameBase previousFrame, nextFrame;    int m_i_GuageLength;    public GameSwitch()    {    }    public void Create(GameViewBase view)    {        m_View = view;        m_i_ScreenWidth = m_View.m_i_ScreenWidth;        m_i_ScreenHeight = m_View.m_i_ScreenHeight;    }    /**     * 切换页面。     * Ver 1.0.0修改     * 在方法结尾增加如下内容,判断下一页是否有图片资源要提取,如果没有,则直接跳入下一页。     * @param previousFrame 当前页面。     * @param nextFrame 下一页。     * @return false 表示失败。     */    public boolean SwitchFrame(GameFrameBase previousFrame, GameFrameBase nextFrame)    {        if(nextFrame == null)            return false;        this.previousFrame = previousFrame;        this.nextFrame = nextFrame;        if(this.previousFrame != null)        {            this.previousFrame.Release();        }        m_i_GuageLength = nextFrame.m_vect_SurfacePath.size();        if(m_i_GuageLength <= 0)        {            gotoNextFrame();        }        else        {            m_View.m_pge_CurrentPage = this;            m_i_FrameTimer = 0;        }        return true;    }    /**     * 读取下一页的Surface。     * @return true表示还有资源需要加载,false表示资源加载完毕。     */    private boolean loadSurfaces()    {        if (m_i_FrameTimer < m_i_GuageLength)        {            m_View.loadSurface((String)nextFrame.m_vect_SurfacePath.elementAt(m_i_FrameTimer));            m_i_FrameTimer ++;            return true;        }        return false;    }    public void Show()    {        DrawLoadingPage(m_i_FrameTimer, m_i_GuageLength);        if (!loadSurfaces())        {            gotoNextFrame();        }    }    public void Release()    {    }    /**     * 什么也不作。     * @param iScanCode 按键编码     */    public void OnKeyDown(int iScanCode)    {}    /**     * 什么也不作。     * @param iScanCode 按键编码     */    public void OnKeyUp(int iScanCode)    {}    /**     * <p>绘制读取页</p>     * 通常需要根据当前资源加载的情况绘制加载进度条,对于不同的游戏可重写此方法,以适应不同的游戏风格。     * @param iCurrGuage 进度条的当前进度。     * @param iWholeGuage 进度条总长。     */    private void DrawLoadingPage(int iCurrGuage, int iWholeGuage)    {        m_View.m_g_BackGraphy.setColor(0, 0, 0);        m_View.m_g_BackGraphy.fillRect(0, 0, m_i_ScreenWidth, m_i_ScreenHeight);        m_View.m_g_BackGraphy.setColor(200, 200, 200);        m_View.m_g_BackGraphy.setFont(Font.getDefaultFont());        m_View.m_g_BackGraphy.drawString("Loading...", m_i_ScreenWidth / 5,                                         m_i_ScreenHeight / 2 - 4, Graphics.BOTTOM | Graphics.LEFT);        m_View.m_g_BackGraphy.drawRoundRect(m_i_ScreenWidth / 5, m_i_ScreenHeight / 2 + 10,                                            m_i_ScreenWidth * 3 / 5, 20, 8, 8);        m_View.m_g_BackGraphy.fillRoundRect(m_i_ScreenWidth / 5 + 2, m_i_ScreenHeight / 2 + 10 + 2,                                            (m_i_ScreenWidth * 3 / 5 - 3) * iCurrGuage / iWholeGuage,                                            20 - 3, 8, 8);    }    /**     * 跳转到下一页。     */    private void gotoNextFrame()    {        if (nextFrame != null)        {            nextFrame.Create(m_View);            m_View.m_pge_CurrentPage = nextFrame;        }    }}

⌨️ 快捷键说明

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