gpt4 book ai didi

java - 在 GUI map Java 上平移

转载 作者:行者123 更新时间:2023-12-02 00:02:03 24 4
gpt4 key购买 nike

这是我的第一篇文章,因此如果需要任何其他信息,请告诉我。我正在 Java GUI 中制作一个游戏,只是有两个希望很快的问题。我目前可以在屏幕上绘制 map 并使用以下代码在 map 上平移: 私有(private)类 MoveMap 实现 MouseMotionListener{

    @Override
public void mouseDragged(MouseEvent e) {

}

@Override
public void mouseMoved(MouseEvent e) {

if(e.getX() > swidth-30){
if(xmod+(columns*30) > swidth){
xmod-=30;
repaint();
}
}
else if(e.getX() < 30){
if(xmod < 0){
xmod+=30;
repaint();
}
}
else if(e.getY() > sheight-30){
if(ymod+(rows*30) > sheight){
ymod-=30;
repaint();
}
}
else if(e.getY() < 30){
if(ymod < 0){
ymod+=30;
repaint();
}
}
else{

}

}

}

唯一的问题是鼠标必须不断在屏幕边缘移动才能连续平移。我的问题是是否有办法让鼠标位于屏幕边缘并在更新图形时不断平移?我的第二个问题是这是否也可以应用于移动的角色?我认为线程也许是一个可能的解决方案,但我不熟悉使用它们。谢谢!

最佳答案

我可以想到两种方法来实现这一目标。

你可以...

启动一个javax.swing.Timer,它将根据需要更新 x/y 位置,并在鼠标进入屏幕边缘给定距离内时重新绘制屏幕。当鼠标移回时,显然您会停止计时器;)

你可以...

使用后台线程来监视鼠标位置,当鼠标进入“触发”区域时,将更新 x/y 值并触发重绘,确保您重新同步调用美国东部夏令时间;)

关于java - 在 GUI map Java 上平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com