首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blackberry Touch事件在touch up位置检测对象

Blackberry Touch事件在touch up位置检测对象
EN

Stack Overflow用户
提问于 2011-04-19 17:03:47
回答 1查看 930关注 0票数 0

这是我的第一个黑莓应用程序,我正在尝试为触摸屏设备制作一个简单的游戏。这是典型的图像分割成的图块,你必须对它们进行解读,这样图块才能按正确的顺序显示出来。其目的是用户将能够“拖动”一个磁贴在屏幕上的任何地方,他们将与他们放在上面的磁贴交换位置。

我正在对我的磁贴使用位图按钮

代码语言:javascript
复制
    HorizontalFieldManager hfm = new HorizontalFieldManager();
    add(hfm);
    hfm.add(button1);
    hfm.add(button2);
        etc...

我有一个名为Puzzle的类,如下所示:

代码语言:javascript
复制
class PuzzleScreen extends MainScreen implements FieldChangeListener {

我添加了以下内容来尝试检测触摸屏上的人的移动

代码语言:javascript
复制
protected boolean touchEvent(TouchEvent event) { 
case TouchEvent.MOVE:

            PuzzleTile fieldMove = (PuzzleTile) this.getLeafFieldWithFocus();

            // Dialog.alert("MOVE");

            int[] x_points;
            int[] y_points;
            int[] time_points;
            int size = event.getMovePointsSize();
            x_points = new int[size];
            y_points = new int[size];
            time_points = new int[size];
            event.getMovePoints(1, x_points, y_points, time_points);
                            return true;
        }

        return false;
    }

我需要找出哪个图像瓦片(bitmapbutton)在upevent的位置。我有(我认为)上面的坐标,但不确定如何找到与哪个瓷砖相关。

Bex

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-19 19:32:00

就像这样。

代码语言:javascript
复制
static class TestScreen extends MainScreen  {

    private static String down;

    public TestScreen () {
        HorizontalFieldManager hfm = new HorizontalFieldManager();
        add(hfm);
        hfm.add(new TestButton("bt1"));
        hfm.add(new TestButton("bt2"));
        hfm.add(new TestButton("bt3"));
        hfm.add(new TestButton("bt4"));
        hfm.add(new TestButton("bt5"));
        hfm.add(new TestButton("bt6"));
    }

    public static void touchDown(TestButton tb) {
        down = tb.getText();
        System.out.println("DOWN in " + tb.getText());
    }

    public static void touchUp(TestButton tb) {
        System.out.println("UP in " + tb.getText());
        if(!down.equals(tb.getText()))
            System.out.println("swap " + down + " and " + tb.getText());
        down = "";
    }




class TestButton extends LabelField {

    public TestButton (String label) {
        super(label);
    }

    protected boolean touchEvent(TouchEvent event) { 
        if(event.getEvent() == TouchEvent.UP)
            TestScreen.touchUp(this);
        else if(event.getEvent() == TouchEvent.DOWN)
            TestScreen.touchDown(this);
       return super.touchEvent(event);
    }


}

} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5713988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档