我知道按键处理现在可以采用两种方式:借助MIDP1.0中的keyPressed()、 keyRepeated() 和keyReleased()或者借助MIDP2.0中GameCanvas.getKeyStates()方法得到系统的按键状态。
在网上也能搜到很多例子,但我发现了一个问题,在网上也搜不到什么相似的问题。我想问问大家是否也遇到了这种问题,也或者根本不是问题,而是我自己出错误了  
public class gameCanvas extends GameCanvas implements Runnable{   public gameCanvas() {
        //构造方法
        super(true);
  }public void keyPressed( ){
        //获取手机按键        
        int keyState=getKeyStates();
        //判断上下左右键是否被按下,每次移动2个像素的距离
        if((keyState UP_PRESSED)!=0)
        {
        }
        if((keyState DOWN_PRESSED)!=0)
        {
        }
        ……
  }public void run() {
        //无限循环检测键盘的输入
        while(true)
        {
            keyPressed();
       }
   }}
可是这样并不能按照我所想要的移动,移动的距离忽大忽小,如果改一下覆盖keyPressed(int keyCode)方法就可以了,代码如下:
public gameCanvas() {
        //构造方法
        super(false);
  }public void keyPressed(int keyCode ){
        //获取手机按键        
        int keyState=getKeyStates();
        //判断上下左右键是否被按下,每次移动2个像素的距离
        if((keyState UP_PRESSED)!=0)
        {
        }
        if((keyState DOWN_PRESSED)!=0)
        {
        }
        ……
  }
如果这样改的话,我感觉就好像没有体现出MIDP2.0中GameCanvas.getKeyStates()方法的好处,再把一些不重要的代码改改就好像没使用这个方法一样。也或者就是我自己存在误区,存在一个大错误,希望各位看看帮我解决

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【angelyrx】截止到2008-07-26 20:31:54的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html