我正在用java制作一个在鼠标后面使用“尾巴”的游戏。我使用 MouseMotionListener 并使用 mouseDragged(MouseEvent e) 函数将鼠标的位置添加到数组中。
因此只要触发 mouseDragged(MouseEvent e) 函数,它就应该将当前鼠标位置添加到一个数组中,当拖动停止时,该数组应该被清除。
我的想法是使用 mouseMoved(MouseEvent e) 函数将数组设置为空。我可以这样做:
public void mouseMoved(MouseEvent e) {
if(myTailArray != null) {
myTailArray = null;
}
}
或者就像这样:
public void mouseMoved(MouseEvent e) {
myTailArray = null;
}
最后一种方法意味着 myTailArray 将被多次设置为 null 。但这对性能有影响吗?
编辑:为了清楚起见,我知道当鼠标在拖动后没有移动时,这可能会导致错误。我使用 MouseListener 来重置鼠标的按下和释放,但我只是好奇。
EDIT2:感谢所有评论!我认为因为该事件被触发“相当多”,所以它可能在我的代码中是一种难闻的气味。虽然我没有考虑过缓存等。