📄 gameswitch.java
字号:
package GoGoGo;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 + -