То, что я пытаюсь сделатьНевозможно использовать MouseEvents в главном
Создание игры Pong, где ось Y получает значение от моего курсора в соответствии с приложением
Что я пытался
private void pallet() {
ycur=(int)MouseInfo.getPointerInfo().getLocation().getY();
}
Таким образом, я получаю значение Y в соответствии с моим монитором вместо приложения.
Я также пытался использовать MouseEvent.getY(), но получаю ошибку при попытке вызвать этот метод из основного.
private void pallet() {
ycur=(int)MouseInfo.getPointerInfo().getLocation().getY();
}
Это как мой код выглядит следующим образом, я думаю, что проблема заключается в том, как я использую мои основные и методы, но я не уверен.
public class MyFirst extends JPanel {
public int x = 500, y = 300, border = 30;
public boolean goingDown = true;
public int ycur, cursor;
public void moveBall() {
x++;
if (goingDown == true) {
y++;
} else if (goingDown == false) {
y--;
}
if (y == getHeight() - border) {
goingDown = false;
} else if (y == 0) {
goingDown = true;
}
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.fillOval(x, y, 30, 30);
g.fillRect(30, ycur, 15, 100);
}
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame("Pong");
frame.pack();
frame.setSize(1000, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
MyFirst game = new MyFirst();
frame.add(game);
while (true) {
game.pallet(e);
game.moveBall();
game.repaint();
Thread.sleep(10);
}
}
public void pallet(MouseEvent e) {
ycur=e.getY();
}
}
При использовании им MouseEvent, я получаю сообщение об ошибке на game.pallet (е); в основном, говоря, что он не распознает «e». – creativename
Правильно, поэтому ваша ошибка указана в этой строке: 'game.pallet (e);' потому что 'e' не определен нигде. – user123
Swing управляется событиями, поэтому вместо этого уродливого бесконечного цикла используйте «MouseListener». – Paul