|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难区分一个MIDlet使用程序经由过程挪用Canvas办法来探测哪些键盘代码映照到运转的使用程序中的笼统游戏举措:publicstaticintgetGameAction(intkeyCode); Canvas类界说笼统游戏举措集:UP、DOWN、LEFT、RIGHT、FIRE等等。 游戏开辟者应当晓得MIDP1.0标准中的一个成绩。这个类界说了转化键盘代码到游戏举措的办法,一样也界说了转化游戏举措到键盘代码的办法。publicintgetGameAction(intkeyCode)publicintgetKeyCode(intgameAction) 办法getKeyCode(intgameAction)大概会招致一些成绩,由于它只能前往基于游戏举措的一个键盘代码,即便MIDP1.0同意凌驾一个键盘代码被完成。在Nokia手机中,一般的一些键盘代码被映照到不异的游戏举措,好比"UP键"和"2键"都被映照为向上的游戏举措。而这个办法只能前往个中之一;前往的值是特定的完成。但是,假如办法getGameAction(intKeyCode)利用"UP键"和"2键"的键盘代码作为参数,这个办法将前往准确的向上的游戏举措。上面来看一个欠好的例子,以加深我们的印象:
//欠好的例子,不要这么做:classTetrisCanvasextendsCanvas{intleftKey,rightKey,downKey,rotateKey;voidinit(){//FOLLOWINGMUSTNOTBEDONEleftKey=getKeyCode(LEFT);rightKey=getKeyCode(RIGHT);downKey=getKeyCode(DOWN);rotateKey=getKeyCode(FIRE);}
publicvoidkeyPressed(intkeyCode){if(keyCode==leftKey){moveBlockLeft();}elseif(keyCode=rightKey){...}}}
上面是更好的办理计划:
classTetrisCanvasextendsCanvas{voidinit(){}publicvoidkeyPressed(intkeyCode){intaction=getGameAction(keyCode);switch(action){caseCanvas.LEFT:moveBlockLeft();break;caseCanvas.RIGHT:moveBlockRight();break;}}}
这个例子是MIDP1.0标准中的例子,利用getKeyCode(intgameAction)处置键盘代码值,只能前往一个值。假如如许的话,别的大概的按键映照就不克不及在MIDlet中利用了。好比说,在Nokia7650中就会呈现成绩,Nokia7650有五个偏向键和一个利用杆和一般的键盘结构,下面这个例子就会前往利用杆的值而不是键盘的值。这是处置事务的一种与设备有关的办法,也是一种欠好的办法。更好的办理办法是在keyPressed()办法内利用getGameAction(intKeyCode)。一般,使用程序应当制止利用getKeyCode(intgameAction)办法而且老是利用getGameAction(intKeyCode)。
自:yesky.com
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的), |
|