为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > unJ2ME手机按键处理sb

unJ2ME手机按键处理sb

2017-11-14 7页 doc 51KB 14阅读

用户头像

is_266065

暂无简介

举报
unJ2ME手机按键处理sbunJ2ME手机按键处理sb [摘要] 由于手机控制游戏的按键实在有限,因此需要对有限的按键控制重新规划。而且不同的手机所支持的按键也会有所不同,例如只有数字键无方向键。 [关键字] J2ME 手机游戏 游戏按键 由于手机控制游戏的按键实在有限,因此需要对有限的按键控制重新规划。而且不同的手机所支持的按键也会有所不同,例如只有数字键无方向键。此时就必须通过数字键来进行游戏控制设计,如示例6-2MIDP中定义了如下游戏执行按键:UP、DOWN、LEFT、 RIGHT、FIRE、GAME_A、GAME_B、GAME_C和GA...
unJ2ME手机按键处理sb
unJ2ME手机按键处理sb [摘要] 由于手机控制游戏的按键实在有限,因此需要对有限的按键控制重新规划。而且不同的手机所支持的按键也会有所不同,例如只有数字键无方向键。 [关键字] J2ME 手机游戏 游戏按键 由于手机控制游戏的按键实在有限,因此需要对有限的按键控制重新规划。而且不同的手机所支持的按键也会有所不同,例如只有数字键无方向键。此时就必须通过数字键来进行游戏控制,如示例6-2MIDP中定义了如下游戏执行按键:UP、DOWN、LEFT、 RIGHT、FIRE、GAME_A、GAME_B、GAME_C和GAME_D,相关应用说明如下: l public static final int UP 游戏中执行向上动作。 l public static final int DOWN 游戏中执行向下动作。 l public static final int LEFT 游戏中执行向左动作。 l public static final int RIGHT 游戏中执行向右动作。 l public static final int FIRE 游戏中执行确认动作。 l public static final int GAME_A 游戏中自定义第一个执行动作按键。 l public static final int GAME_B 游戏中自定义第二个执行动作按键。 l public static final int GAME_C 游戏中自定义第三个执行动作按键。 l public static final int GAME_D 游戏中自定义第四个执行动作按键。 在应用时,需使用getGameAction(int keyCode)方法将按键码转换为游戏控制,而要游戏控制转换为按键码则使用getKeyCode(int gameAction)方法。游戏调用的应用方法如下: l public int getGameAction (int keyCode) 根据手机游戏设置的按键取得game action码。 l public int getKeyCode (int gameAction) 根据手机游戏的game Action取得对应的按键代码。 示例6-2 /× 判断游戏按键句柄 ×/ import javax.microedition.midlet.×; import javax.microedition.lcdui.×; public class keyAction2 extends MIDlet implements CommandListener { Display display; //声明一个Form窗口 Form form; Command okCommand; Command exitCommand; //声明一个游戏画板 canvasKey canvaskey; public keyAction2( ) { canvaskey=new canvasKey( ); display=Display.getDisplay(this); //创建一个Form窗口 form=new Form("Form游戏按键控制"); okCommand = new Command("确认", Command.OK, 2); exitCommand = new Command("离开", Command.EXIT, 2); //新建Form的item项说明 form.append("测试游戏按键控制"); // Form中增加一个确认命令键 form.addCommand(okCommand); // Form中增加一个离开命令键 form.addCommand(exitCommand); //将命令加入Form中 form.setCommandListener(this); } public void startApp() { display.setCurrent(form); } public void pauseApp(){} public void destroyApp(boolean unconditional){} public void commandAction(Command cmd, Displayable disp) { //判断命令控制状态 if (cmd == okCommand) { //点确定键后运行Canvas界面 display.setCurrent(canvaskey); } else if(cmd == exitCommand){ //运行离开命令 destroyApp(false); notifyDestroyed(); } } class canvasKey extends Canvas { String keyname=""; int gameaction=0; Image handImage; Image keyImage; String[] maxString={"UP", "SOFT1", "LEFT", "SELECT", "RIGHT", "SOFT2", "DOWN", "SEND", "CLEAR", "1", "2", "3", "4", "5", "6", "7", "8", "9", "ASTERISK","0","POUND" }; int[] maxisX={85, 40, 60, 85, 110, 130, 85, 30, 85, 35, 85, 135, 35, 85, 135, 35, 85, 135, 35, 85, 135 }; int[] maxisY={48, 55, 55, 55, 55, 55, 65, 70, 85, 95, 105, 95, 115, 125, 115, 135, 145, 135, 155, 165, 155 }; public canvasKey() { try{ handImage=Image.createImage("/hand.png"); keyImage=Image.createImage("/key.png"); }catch(Exception ex){} } //运行按键状态 public void keyPressed(int keyCode) { //取得游戏按键名称 keyname=getKeyName(keyCode); //取得游戏按键编码 gameaction=getGameAction(keyCode); //重新绘制图面 repaint(); } public void paint(Graphics g) { g.setColor(0xffffff); g.fillRect(0,0,getWidth(),getHeight()); g.setColor(0); g.drawString("游戏按键对照", 40, 1, Graphics.LEFT Graphics.TOP); g.drawString("按键名称为:"+keyname, 50, 13, Graphics.LEFT Graphics.TOP); g.drawString("游戏按键码:"+String.valueOf(gameaction), 50, 25, Graphics.LEFT Graphics.TOP); g.drawImage(keyImage, 15, 40,Graphics.LEFT Graphics.TOP); for(int i=0; i if(maxString[i].equals(keyname)) g.drawImage(handImage, maxisX[i], maxisY[i], Graphics.LEFT Graphics.TOP); } } } 运行结果如图6-4所示。 【说明】 从示例程序中显示的按键说明来看,方向键的按键编码与数字键的按键编码是相同的,只是名称不一样。在设计游戏按键时,可以使用数字键来代为控制方向,不过目前的手机大部分都包含方向按键和数字键。因此根据程序代码设计按键的原则,可以提供方向按键与数字键同时使用。
/
本文档为【unJ2ME手机按键处理sb】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索