下面是一个简单的Java弹跳球游戏代码,这个游戏中,用户可以使用键盘的箭头键来控制一个球在窗口内移动:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class BallGame extends JPanel implements KeyListener {
private int ballX, ballY, ballSpeedX, ballSpeedY;
public BallGame() {
ballX = getWidth() / 2;
ballY = getHeight() / 2;
ballSpeedX = 5;
ballSpeedY = 5;
setFocusable(true);
setPreferredSize(new Dimension(400, 400));
addKeyListener(this);
setBackground(Color.black);
setForeground(Color.yellow);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(getForeground());
g.fillOval(ballX, ballY, 20, 20);
}
public void moveBall() {
ballX += ballSpeedX;
ballY += ballSpeedY;
if (ballX > getWidth() - 20 || ballX < 0) {
ballSpeedX *= -1;
}
if (ballY > getHeight() - 20 || ballY < 0) {
ballSpeedY *= -1;
}
repaint();
}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_LEFT:
ballSpeedX = -5;
break;
case KeyEvent.VK_RIGHT:
ballSpeedX = 5;
break;
case KeyEvent.VK_UP:
ballSpeedY = -5;
break;
case KeyEvent.VK_DOWN:
ballSpeedY = 5;
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
ballSpeedX = 0;
ballSpeedY = 0;
}
@Override
public void keyTyped(KeyEvent e) {
}
public static void main(String[] args) {
JFrame frame = new JFrame("Simple Ball Game");
BallGame game = new BallGame();
frame.add(game);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Timer timer = new Timer(10, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
game.moveBall();
}
});
timer.start();
}
}
这段代码创建了一个名为 BallGame 的类,它继承自 JPanel 并实现了 KeyListener 接口。游戏窗口中有一个黄色的球,用户可以使用键盘的箭头键来控制球的左右和上下移动。球碰到窗口边缘时会反弹。
要运行这个游戏,你需要将这段代码保存到一个名为 BallGame.java 的文件中,然后使用Java编译器编译并运行它。