首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程中的MouseMotionListener

线程中的MouseMotionListener
EN

Stack Overflow用户
提问于 2014-04-27 14:18:00
回答 1查看 235关注 0票数 0

我是Java的新手,现在我正在尝试理解Thread。

我目前正在做一个“让球弹起来,否则你就输了”的游戏。

在这个游戏中,有一个球从“墙”或“梁”上弹跳。

墙将随光标的x位置移动。没有y运动。

现在我不能使用计时器,因为如果我使用计时器,我将有相同的MouseMotion和球移动的延迟。

我正在尝试实现的是在延迟10ms的情况下获取鼠标移动信息,以及在延迟200ms的情况下获取球的移动。

有了计时器,我必须同时选择墙和球的延迟。10ms对于墙的移动来说是很棒的,因为当我移动鼠标时它会立即移动,但是对于球的移动来说太快了。甚至连查克·诺里斯都不能把鼠标移动得这么快,让球从墙上弹回来。

我尝试创建两个不同的计时器,但它不接受鼠标监听器。ActionListenerTimer唯一接受的监听器,但是由于某些原因,如果我使用单个计时器作为参数,它仍然会触发actionPerformed方法旁边的鼠标运动方法。但这给了我相同的延迟,对于球和墙。

这就是为什么我需要线程来做这件事。但是我不知道如何将鼠标运动信息从MouseListener获取到Thread中的paintComponent

我希望你们能理解我的问题。

编辑:

这就是我现在尝试获得10毫秒的墙延迟和200毫秒的球延迟的方法:

代码语言:javascript
复制
private Timer trigger = new Timer(200, this);
private Timer wall = new Timer(10, this);

在paintComponent中

代码语言:javascript
复制
if ((start.getText() == "Spiel aktiv..." || trigger.isRunning() == true) || wall.isRunning() == true) {
g.setColor(new Color(255, 254, 102));
g.fillRect(x, screen.getHeight() - 15, length, 10);
}

if ((start.getText() == "Spiel aktiv..." || trigger.isRunning() == true) && wall.isRunning() == false) {

        ball_x = ball_x + dx;
        ball_y = ball_y + dy;

        if (ball_x > (screen.getWidth() - 100) || ball_x < 10) {
        dx = -dx;
        bounce = true;

    }

        if (ball_y > (screen.getHeight() - 115) || ball_y < 10) {
        dy = -dy;
        bounce = true;

    }
    }

    g.setColor(new Color(103, 104, 255));
    g.drawRect(ball_x, ball_y, 100, 100);
    g.setColor(new Color(255, 254, 102));
    g.fillOval(ball_x, ball_y, 60, 60);


    }

}

在actionPerformed中,只要用户单击start,我就会启动墙和触发器(球)计时器。

但我不能让球计时器和壁球计时器分开工作。墙计时器更快,可以完全重画,但我只想让它重画墙,而不是球。

EN

回答 1

Stack Overflow用户

发布于 2014-04-27 14:43:33

像往常一样添加您的侦听器( Maus扩展MouseMotionAdapter),不需要任何额外的线程。Event Dispather线程用于处理鼠标事件。

javax.swing.Timer与任何所需的延迟一起使用,只是为了改变球的位置。

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

https://stackoverflow.com/questions/23320073

复制
相关文章

相似问题

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