J2ME手机游戏设计案例源代码-MenuCanvas.doc_第1页
J2ME手机游戏设计案例源代码-MenuCanvas.doc_第2页
J2ME手机游戏设计案例源代码-MenuCanvas.doc_第3页
J2ME手机游戏设计案例源代码-MenuCanvas.doc_第4页
J2ME手机游戏设计案例源代码-MenuCanvas.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*MenuMIDimport javax.microedition.lcdui.Display;import javax.microedition.midlet.MIDlet;/* * To change this template, choose Tools | Templates * and open the template in the editor. */* * MenuMID为MIDlet主程序 */public class MenuMID extends MIDlet private Display display; private MenuCanvas canvas; /声明画布对象canvas private MainCanvas mcanvas; public MenuMID()display = Display.getDisplay(this); /获取Display canvas=null; mcanvas=null; LoadMenu(); /载入菜单 protected void startApp() protected void pauseApp() protected void destroyApp(boolean arg0) /* 退出程序 */ public void exit() System.gc(); /清理垃圾 destroyApp(false); notifyDestroyed(); /* LoadMenu()函数用于创建菜单画布,并设置为当前显示对象*/ public void LoadMenu() canvas=null; canvas=new MenuCanvas(this); /创建菜单对象canvas display.setCurrent(canvas); /设置canvas为当前显示对象 /* LoadMainCanvas()函数用于创建游戏主画布,并设置为当前显示对象*/ public void LoadMainCanvas() canvas=null; if(mcanvas=null) /如果没有创建游戏主画布,则先创建 mcanvas=new MainCanvas(this); display.setCurrent(mcanvas); *MainCanvasimport javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics;/* * To change this template, choose Tools | Templates * and open the template in the editor. */* * MainCanvas实现程序主画面 */public class MainCanvas extends Canvas private MenuMID mid; /声明MIDlet对象,以方便调用MIDlet /* 构造函数中,将MenuMID作为参数传入 */ public MainCanvas(MenuMID midlet) super(); this.setFullScreenMode(true); /设置为全屏模式 mid=midlet; /将传入的MenuMID赋给mid /* 绘图 */ protected void paint(Graphics g) /填充背景 g.setColor(0x00ffffff); g.fillRect(0, 0, getWidth(), getHeight(); /绘制画面内容 g.setColor(0x00ff0000);/设置画笔颜色 g.drawString(游戏开始, getWidth()/2, 50, Graphics.HCENTER|Graphics.BASELINE); /* 响应按键事件,并进行处理*/ protected void keyReleased(int keyCode) int keyAction=getGameAction(keyCode);/通过按键获取游戏动作 / 检查游戏动作,并作相应处理 switch(keyAction) case Canvas.GAME_A: mid.LoadMenu(); /调用MIDlet以转到菜单画面 break; case Canvas.GAME_B: mid.exit(); /调用MIDlet以退出程序 break; repaint(); /重绘 *MenuCanvasimport javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Font;import javax.microedition.lcdui.Graphics;/* * MenuCanvas实现游戏菜单画面 */public class MenuCanvas extends Canvas public MenuMID mid; /声明MIDlet对象,以方便调用MIDlet static int CurrMenuID; /声明当前菜单索引 static final String StrMenu=开 始,排行榜,设 置,关 于,退 出; /菜单项数组 static int MenuLocY; /绘制菜单时第一项的顶端Y坐标 /定义中等字体 private Font mediumFont=Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN, Font.SIZE_MEDIUM); /定义加粗中等字体 private Font mediumBoldFont=Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD, Font.SIZE_MEDIUM); /定义加粗大字体 private Font largeFont=Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD, Font.SIZE_LARGE); /* 在构造函数中进行变量初始化*/ public MenuCanvas(MenuMID midlet) super(); setFullScreenMode(true); /设置为全屏模式 this.mid=midlet; /将传入的MenuMID赋给mid CurrMenuID=0; /设置开始时的默认菜单项为第1项 MenuLocY=100; /设置菜单项起始Y坐标为100 repaint(); /重绘 /* 绘制画面内容*/ protected void paint(Graphics g) /填充背景 g.setColor(0x00ffffff); g.fillRect(0, 0, getWidth(), getHeight(); /绘制标题 g.setColor(0x00ff0000); /设置标题颜色 g.setFont(largeFont); /设置字体 g.drawString(太空之战, getWidth()/2, 50, Graphics.HCENTER|Graphics.BASELINE); /调用drawMenu()函数绘制菜单 drawMenu(g,CurrMenuID); /* 响应按键事件*/ protected void keyReleased(int keyCode) int keyAction=getGameAction(keyCode);/通过按键获取游戏动作 / 检查游戏动作,并作相应处理 switch(keyAction) case Canvas.UP: /选择上一项菜单 CurrMenuID=Math.max(CurrMenuID-1,0); break; case Canvas.DOWN: /选择下一项菜单 CurrMenuID=Math.min(CurrMenuID+1,StrMenu.length-1); break; case Canvas.FIRE: /执行所选中的菜单 switch(CurrMenuID) /判断当前选中的菜单项并执行 case 0: mid.LoadMainCanvas(); /用MIDlet以加载主画面 break; case 4: mid.exit(); /用MIDlet以退出程序 break; break; repaint(); /重绘 /* drawMenu函数用于绘制菜单 */ private void drawMenu(Graphics g, int menuID) /循环绘制菜单项 for(int i=0;i5;i+) /检查是否为当前选中的菜单项 if(i=menuID) /如果是当前选中的菜单项,则绘制为高亮显示 g.setColor(0x00b0b0b0); g.fillRect(0,MenuLocY+(i-1)*mediumBoldFont.getHeight() , getWidth(),mediumBoldFont.getHeight();/绘制菜单项背景 /绘制高亮菜单项 g.setColor(0x00f0f000); g.setFont(mediumBoldFont); g.drawString(StrMenui, getWidth()/2, MenuLocY+i*mediumBoldFont.getHeight(), Gr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论