欢迎光临
我们一直在努力

public int getKeyCode(int gameAction) 与 public int getGameAction(int keyCode)的区别-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

一个midlet应用程序通过调用canvas方法来探测哪些键盘代码映射到运行的应用程序中的抽象游戏动作:public static int getgameaction(int keycode);   canvas类定义抽象游戏动作集:up、down、left、right、fire等等。  游戏开发者应该知道midp 1.0规范中的一个问题。这个类定义了转化键盘代码到游戏动作的方法,同样也定义了转化游戏动作到键盘代码的方法。public int getgameaction(int keycode)public int getkeycode(int gameaction)  方法getkeycode(int gameaction)可能会导致一些问题,因为它只能返回基于游戏动作的一个键盘代码,即使midp 1.0允许超过一个键盘代码被实现。在nokia手机中,个别的一些键盘代码被映射到相同的游戏动作,比如"up键"和"2键"都被映射为向上的游戏动作。而这个方法只能返回其中之一;返回的值是特定的实现。然而,如果方法getgameaction(int keycode)使用"up键"和"2键"的键盘代码作为参数,这个方法将返回正确的向上的游戏动作。下面来看一个不好的例子,以加深我们的印象:
//不好的例子,不要这么做:class tetriscanvas extends canvas {    int leftkey, rightkey, downkey, rotatekey;    void init (){        //following must not be done        leftkey = getkeycode(left);        rightkey = getkeycode(right);        downkey = getkeycode(down);        rotatekey = getkeycode(fire);    }

    public void keypressed(int keycode) {        if (keycode == leftkey) {            moveblockleft();        } else if (keycode = rightkey) {…        }    }}
  下面是更好的解决方案:
class tetriscanvas extends canvas {    void init (){    }    public void keypressed(int keycode) {        int action = getgameaction(keycode);        switch (action){            case canvas.left:                moveblockleft();                break;            case canvas.right:                moveblockright();                break;        }}}

  这个例子是midp 1.0规范中的例子,使用getkeycode ( int gameaction)处理键盘代码值,只能返回一个值。如果这样的话,其它可能的按键映射就不能在midlet中使用了。比如说,在nokia 7650中就会出现问题,nokia 7650有五个方向键和一个操纵杆以及普通的键盘布局,上面这个例子就会返回操纵杆的值而不是键盘的值。这是处理事件的一种与设备无关的方法,也是一种不好的方法。更好的解决方法是在keypressed ()方法内使用getgameaction ( int keycode)。通常,应用程序应该避免使用getkeycode ( int gameaction)方法并且总是使用getgameaction ( int keycode)。

                                                                                                      自:yesky.com    

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » public int getKeyCode(int gameAction) 与 public int getGameAction(int keyCode)的区别-JSP教程,Java技巧及代码
分享到: 更多 (0)