我刚刚完成了有关制作网络游戏的在线教程。游戏本身只是在屏幕上跟随鼠标的一个小圆圈。
我一直在修改代码以使用键而不是鼠标来移动圆圈。然而,虽然我在从未使用过“JPanel”之前已经这样做过,但我正在努力获得移动圆圈的钥匙。
游戏的“客户端”端仅包含两个文件,Client.java 和 DataPackage.java,问题(据我所知)似乎在 Client.java 中。
我不会粘贴整个代码,因为它很大(如果你认为有必要,我会粘贴),但这是让球跟随鼠标的一点
public Client()
{
this.addMouseMotionListener(new MouseMotionListener()
{
@Override
public void mouseDragged(MouseEvent e)
{
x = e.getX();
y = e.getY();
}
@Override
public void mouseMoved(MouseEvent e) {}
});
}
现在我试着改变
this.addMouseMotionListener(new MouseMotionListener()
{
@Override
public void mouseDragged(MouseEvent e)
{
x = e.getX();
y = e.getY();
}
@Override
public void mouseMoved(MouseEvent e) {}
});
至
this.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) { System.out.println( "tester"); }
public void keyReleased(KeyEvent e) { System.out.println("2test2"); }
public void keyTyped(KeyEvent e) { System.out.println("3test3"); }
});
但这似乎不起作用,然后我尝试通过将键控代码放在外面来更改键控代码的位置
public Client() { }
然后我认为它可能是文件顶部的“实现”标签。所以我加了
implements KeyListener
到结束
public class Client extends JComponent
但是同样,这没有用,然后我做了更多的研究,似乎我需要通过使用将面板设置为集中
panel.setFocusable(true);
但是这个信息的来源,没有说把它放在哪里,我把它放在哪里都会抛出一个错误
有人可以帮我解释一下吗?