• Java GUI实现桌球小游戏


    桌球游戏是一种室内运动,通常在一个正式的桌球台上进行。这种游戏也被称为台球或母球。桌球游戏的目标是使用一个击球杆将彩球击入桌面四个角落的袋子中,得分最高的一方获胜。桌球游戏需要一定的技巧和策略,因此是一项受欢迎的竞技运动和休闲娱乐活动。

    以下是一个简单的桌球小游戏的Java代码实现示例:

    1. import java.awt.Color;
    2. import java.awt.Graphics;
    3. import java.awt.event.ActionEvent;
    4. import java.awt.event.ActionListener;
    5. import javax.swing.JFrame;
    6. import javax.swing.JPanel;
    7. import javax.swing.Timer;
    8. public class DeskBallGame extends JPanel implements ActionListener {
    9. private static final long serialVersionUID = 1L;
    10. private int ballX = 200;
    11. private int ballY = 200;
    12. private int ballWidth = 30;
    13. private int ballHeight = 30;
    14. private int ballSpeedX = -2;
    15. private int ballSpeedY = -3;
    16. private int tableWidth = 400;
    17. private int tableHeight = 300;
    18. private int paddleX = 0;
    19. private int paddleY = 250;
    20. private int paddleWidth = 60;
    21. private int paddleHeight = 10;
    22. private Timer timer;
    23. public DeskBallGame() {
    24. timer = new Timer(5, this);
    25. timer.start();
    26. }
    27. public void paint(Graphics g) {
    28. super.paint(g);
    29. g.setColor(Color.BLUE);
    30. g.fillOval(ballX, ballY, ballWidth, ballHeight);
    31. g.setColor(Color.RED);
    32. g.fillRect(paddleX, paddleY, paddleWidth, paddleHeight);
    33. g.setColor(Color.BLACK);
    34. g.drawRect(0, 0, tableWidth, tableHeight);
    35. }
    36. public void actionPerformed(ActionEvent e) {
    37. ballX += ballSpeedX;
    38. ballY += ballSpeedY;
    39. if (ballX < 0 || ballX > tableWidth - ballWidth) {
    40. ballSpeedX = -ballSpeedX;
    41. }
    42. if (ballY < 0 || ballY > tableHeight - ballHeight) {
    43. ballSpeedY = -ballSpeedY;
    44. }
    45. if (ballY + ballHeight >= paddleY && ballX + ballWidth >= paddleX
    46. && ballX <= paddleX + paddleWidth) {
    47. ballSpeedY = -ballSpeedY;
    48. }
    49. repaint();
    50. }
    51. public static void main(String[] args) {
    52. JFrame frame = new JFrame("Desk Ball Game");
    53. DeskBallGame deskBallGame = new DeskBallGame();
    54. frame.add(deskBallGame);
    55. frame.setSize(deskBallGame.tableWidth, deskBallGame.tableHeight);
    56. frame.setVisible(true);
    57. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    58. }
    59. }

    这个代码实现了一个带有桌子、球和球拍的桌球小游戏。在窗口中,当球碰到桌子边界时,它将反弹。当球与球拍相撞时,它也将反弹。

    要运行这个程序,只需将代码复制到Java开发环境中,并运行主方法。这将打开一个窗口,其中包含一个可移动的球和球拍,您可以使用箭头键移动球拍以避免让球落下。

    效果如下:

  • 相关阅读:
    Python3操作MongoDB数据库
    力扣:169. 多数元素(Python3)
    Unity编辑器扩展——实现样条线编辑器
    如何优化网站信息架构
    【技术课堂】从批到流:pull or not pull, that's a question
    JavaScript系列之switch语句
    软考高级系统架构设计师系列论文之:论软件系统架构风格
    ruoyi-nbcio增加websocket与测试页面
    IDA动态调试apk
    B站8月第3周榜单丨飞瓜数据UP主排行榜(B站平台)发布!
  • 原文地址:https://blog.csdn.net/m0_37649480/article/details/134511503