当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

J2ME中操纵Canvas制作简单的游戏菜单[Java编程]

赞助商链接



  本文“J2ME中操纵Canvas制作简单的游戏菜单[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

我们知道MIDP的图形用户界面分为两类,辨别是高级图形用户界面和初级用户界面.普通来说高级图形用户界面类利用起来对比便利,可移植性强,但是程序员对他的掌握本领也很低,因为它们的界面表现是由底层掌握的,而不是我们掌握的.相比高级UI类,初级UI类则利用起来更难一些,但是掌握本领更强,可以做出自己需求的界面.

Canvas和Graphics是我们必须纯熟利用的两个类,辨别代表了画布和画笔(事实上更丰富,姑且这么比方).而我们则是画画的人,而指导我们若何下笔的就是java doc了,再加上勤奋勤奋一定可以画出不错的界面.比方tabbed菜单,二级菜单等.这里我们报告一个简单菜单的制作方法.

在画菜单的时刻,需求考虑两面的问题,第一是计算相对位置,让菜单可以尽大概适应更多的机型,尽大概少利用绝对值.比方画下面的菜单的时刻

我们应当计算菜单的每个条目的高度,这些可以有Font的高度算出,当然你可以给条目留一些padding的距离.还应当计算条目的最宽值,毕竟每个条目的字数不一样.这样基本知道了整个菜单占的空间.最后还需求计算菜单在屏幕的位置.菜单的绘制以下所示:

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);
}
}

第二个重要的问题是:核心的切换,在高级UI类中,这是不需求我们处理的.但是利用Canvas制作菜单需求自己来处理核心的移动,这里我们定义一个int范例变量selected,来记录核心所在的菜单条目位置,也就是挑选的索引.当用户按键的时刻,我们在keyPressed()办法中判断用户的移动方向,对selected举行相关的加减运算,然后repaint()整个屏幕便可.

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();
}


  以上是“J2ME中操纵Canvas制作简单的游戏菜单[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • j2me创意-Wap浏览器的源代码
  • J2ME中读取Unicode和UTF-8编码文件
  • J2ME中的底子碰撞检测算法浅析
  • <b>关于j2me game双缓冲实现根究</b>
  • J2ME游戏开辟学习之用setClip分割图片
  • 在J2ME/MIDP中实现图象旋转
  • 初学j2me必读 网友学习笔记
  • 操纵J2ME程序测试MIDlet的生命周期
  • J2ME中操纵缓存将屏幕内容存储为Image
  • 操纵J2ME技术开辟RPG游戏之按键处理机制
  • J2ME中setClip办法操纵详解
  • 在J2ME手机程序开辟中操纵颜色
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .