Java 如何获取鼠标位置和缓冲区?

Java 如何获取鼠标位置和缓冲区?,java,awt,mouseevent,buffer,Java,Awt,Mouseevent,Buffer,如何获取鼠标位置。我试过: int mouseX = MouseInfo.getPointerInfo().getLocation().x; int mouseY = MouseInfo.getPointerInfo().getLocation().y; 但整个屏幕都是这样。无论如何,相对于JPanel/JFrame来执行它 如果我只使用每毫秒重新绘制一次的图形JFrame和JPanel,我应该有缓冲区吗?还是会好起来 如何将MouseAcioneEvent仅添加到框架中,使其仅在框架

如何获取鼠标位置。我试过:

int mouseX = MouseInfo.getPointerInfo().getLocation().x;
    int mouseY = MouseInfo.getPointerInfo().getLocation().y;
但整个屏幕都是这样。无论如何,相对于JPanel/JFrame来执行它

如果我只使用每毫秒重新绘制一次的图形JFrame和JPanel,我应该有缓冲区吗?还是会好起来

如何将MouseAcioneEvent仅添加到框架中,使其仅在框架中获得鼠标的X和Y

使用MouseListener而不是MouseInfo。MouseListener将触发与引发事件的组件相关的事件,这意味着您不需要将事件转换到组件空间,因为事件将在组件上下文中转换为

有关更多详细信息,请参阅

我应该如何每毫秒或以其他方式更新游戏重绘

使用javax.swing.Timer

有关更多详细信息,请参阅

我应该使用缓冲区吗

这将视情况而定。Swing组件已经是双缓冲的,但如果您使用更复杂的计时机制,即游戏循环,您可能会发现它很有用,甚至可以自己滚动

一、 就我个人而言,我会从简单开始

如何改进我最初构思代码的方式?有10个循环是正确的,还是只有1个循环可以减少滞后ect

可能有很多事情,但从更广泛的想法开始

将实体分解为他们自己的职责,例如,玩家应该知道它在哪里以及应该如何绘制。它甚至可以根据游戏的当前状态知道它应该如何移动。通过这种方式,您可以创建任意数量的实体,所有实体都有自己的规则集,这些规则集是独立的,并且易于更新。 设计一个控制器机制,负责接收键盘和鼠标事件,并简单地更新游戏模型的当前状态。也就是说,用户没有按下“左”键,而是将玩家移到左边,它只会在游戏模型中升起一个标志,表明左侧状态已被触发或未被触发,引擎将在下一次更新循环中确保每个实体都知道更改 不要使用魔法或硬编码数字,而是提供某种缩放场景的能力。例如,您可以根据窗口的大小决定屏幕上显示的内容。。。
谢谢,我需要帮助,请慢慢回答。它将获得+1的首付票。我猜不是很清楚的问题和不必要的数据吗?不是你的下级选民,而是考虑少评论,多改进这个问题。试着简化它,这样我们就可以看到你的问题具体是什么。我已经读了好几次了,但还没有完全理解。好吧,我想我试着问了很多问题,并漫谈了一下我的编辑。请坚持每个帖子只问一个问题,而不是4个。这并不是真正的责任。如果你编辑它,我们可以重新打开它。很好。谢谢