用java写一个桌球的游戏
时间: 2023-12-06 20:03:36 浏览: 119
java写的桌球游戏
4星 · 用户满意度95%
好的,下面是一个简单的用Java写桌球游戏的示例代码:
```java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PoolGame extends JPanel {
private Point ballPos = new Point(100, 100); // 小球的初始位置
private Point ballVel = new Point(2, 3); // 小球的初始速度
private int ballSize = 20; // 小球的大小
private int tableWidth = 800; // 桌面宽度
private int tableHeight = 600; // 桌面高度
private int tableMargin = 50; // 桌边距离
private int fps = 60; // 游戏帧率
public PoolGame() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
ballPos = e.getPoint();
}
});
}
public void moveBall() {
ballPos.x += ballVel.x;
ballPos.y += ballVel.y;
if (ballPos.x < tableMargin || ballPos.x > tableWidth - tableMargin - ballSize) {
ballVel.x = -ballVel.x;
}
if (ballPos.y < tableMargin || ballPos.y > tableHeight - tableMargin - ballSize) {
ballVel.y = -ballVel.y;
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.GREEN);
g.fillRect(tableMargin, tableMargin, tableWidth - 2 * tableMargin, tableHeight - 2 * tableMargin);
g.setColor(Color.RED);
g.fillOval(ballPos.x, ballPos.y, ballSize, ballSize);
}
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame("Pool Game");
PoolGame game = new PoolGame();
frame.add(game);
frame.setSize(game.tableWidth, game.tableHeight);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (true) {
game.moveBall();
game.repaint();
Thread.sleep(1000 / game.fps);
}
}
}
```
这个代码实现了一个简单的桌球游戏,你可以在桌面上移动小球,小球会反弹。这个游戏的主要逻辑在 `moveBall()` 方法中,它计算小球的下一个位置和速度。游戏的渲染逻辑在 `paintComponent()` 方法中,它在桌面上画出小球和桌子。在 `main()` 方法中,我们创建了一个 `JFrame` 窗口,并在其中添加了游戏对象。然后我们进入了一个无限循环,在每一帧中更新游戏状态并重绘游戏界面,以此来实现游戏的动态效果。
当然,这只是一个简单的示例代码,你可以根据自己的需要进一步完善和优化它。
阅读全文