解决J2ME开发中的连续按键问题[4]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

        default:
            break;

        }
        repaint();

    }
当按键被释放的时候,我们就把相关的标记位设置为false。
    public void keyReleased(int keyCode)
    {
        int action = getGameAction(keyCode);

        switch (action)
        {
        case LEFT:
            leftPressed = false;
            buttonPressed = "";
            break;

        case RIGHT:
            rightPressed = false;
            buttonPressed = "";
            break;
        default:
            break;
        }
        repaint();

    }

这样我们在重新绘制屏幕的时候就可以根据标记位的状态进行绘画了:
            if (leftPressed)
            {
                left();
            }
            if (rightPressed)
            {
                right();
            }

    笔者给出一个简单的实例来进行论证,我们制作一个MIDlet,当用户按下LEFT的时候,J2ME字符串向左侧移动,当用户按下RIGHT的时候,J2ME字符串向右侧移动。简单起见,我没有处理DOWN和UP的情况。下面是应用程序截图和源代码。

 

 

 

 

 

package com.j2medev;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class KeyActionMIDlet extends MIDlet
{

    private Display display;

    private MainCanvas mainCanvas;

    protected void startApp() throws MIDletStateChangeException
    {

        display = Display.getDisplay(this);
        mainCanvas = new MainCanvas();
        new Thread(mainCanvas).start();
        display.setCurrent(mainCanvas);

    }

    protected void pauseApp()
    {

    }

    protected void destroyApp(boolean arg0) throws MIDletStateChangeException
    {

    }

}

package com.j2medev;

import javax.microedition.lcdui.*;

public class MainCanvas extends Canvas implements Runnable
{
    private String buttonPressed;

    private boolean leftPressed;

    private boolean rightPressed;

    private int px = getWidth() / 2;

    public final int py = getHeight() / 2;

    public MainCanvas()
    {
        buttonPressed = " ";
    }

    private void left()
    {
        if (px >= 0)
        {
            px--;
        }
        buttonPressed = "LEFT";
        repaint();
    }

本文关键:解决J2ME开发中的连续按键问题
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top