快速业务通道

J2ME中使用Canvas制作简单的游戏菜单 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
vas() { selected = OPTIONS[0]; //计算菜单选项的长度和高度值 Font f = Font.getDefaultFont(); for(int i = 0;i<LABELS.length;i++){ int temp = f.stringWidth(LABELS[i]); if(temp > preferWidth){ preferWidth = temp; } } preferWidth = preferWidth + 2*8; preferHeight = f.getHeight()+2*4; } public void paint(Graphics g){ //清除屏幕 int color = g.getColor(); g.setColor(0xFFFFFF); g.fillRect(0,0,getWidth(),getHeight()); g.setColor(color); //计算整个菜单的高度,宽度和(x,y) int rectWidth = preferWidth; int rectHeight = preferHeight * LABELS.length; int x = (getWidth()-rectWidth)/2; int y = (getHeight()-rectHeight)/2; //画矩形 g.drawRect(x,y,rectWidth,rectHeight); for(int i = 1;i<LABELS.length;i++){ g.drawLine(x,y+preferHeight*i,x+rectWidth,y+preferHeight*i); } //画菜单选项,并根据selected的值判断焦点 for(int j = 0;j<LABELS.length;j++){ if(selected == j){ g.setColor(0x6699cc); g.fillRect(x+1,y+j*preferHeight+1,rectWidth-1,preferHeight-1); g.setColor(color); } g.drawString(LABELS[j],x+8,y+j*preferHeight+4,Graphics.LEFT|Graphics.TOP); } } public void keyPressed(int keyCode){ //根据用户输入更新selected的值,并重新绘制屏幕 int action = this.getGameAction(keyCode); switch(action){ case Canvas.FIRE: printLabel(selected); break; case Canvas.DOWN: selected = (selected+1)%4; break; case Canvas.UP:{ if(--selected < 0){ selected+=4; } break; } default: break; } repaint(); serviceRepaints(); } //showNotify()在paint()之前被调用 public void showNotify(){ System.out.println("showNotify() is called"); } private void printLabel(int selected){ System.out.println(LABELS[selected]); } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号