• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

java实现弹球小游戏

java 搞代码 4年前 (2022-01-05) 38次浏览 已收录 0个评论

这篇文章主要为大家详细介绍了java实现弹球小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

GUI实现弹球小游戏,供大家参考,具体内容如下

先看一下游戏效果图。

一个简单的Demo。也比较简单,新手试着做一做完善改进。

源代码

 import Com.Style.FontStyle; import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * @Author: 冀十三 * @DescIption: 弹球小游戏 * @Date:2021--06--10--17:08 */ public class Demo  extends JFrame { //创建游戏窗口 public Demo() { init(); } //桌面大小 private final int TABLE_WIDTH = 450; private final int TABLE_HEIGHT = 600; //球大小 private final int BALL_SIZE = 15; //球拍大小 private final int RACKET_WIDTH = 120; private final i<strong style="color:transparent">来源gaodaima#com搞(代@码网</strong>nt RACKET_HEIGHT = 20; //记录小球坐标 private double BallX = 100; private double BallY = 200; //记录球拍坐标 private double RACKET_X = 150; private final double RACKET_Y = 380; //记录小球速度 private double speedX = 10; private double speedY = 20; //记录游戏是否结束 private boolean isOver = false; //声明一个积分器 int score= 0; //声明一个计时器。 ActionListener run = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //更新小球坐标让小球动起来 BallY+=speedY; BallX+=speedX; //重绘界面 mycanvas.repaint(); //碰到两边的时候 if (BallX=TABLE_WIDTH-BALL_SIZE){ speedX=-speedX; } //碰到上边界的时候 if(BallY=(RACKET_Y-BALL_SIZE)&&BallX>RACKET_X&&BallX(RACKET_Y-BALL_SIZE)&&(BallXRACKET_X+RACKET_WIDTH))){ timer.stop(); isOver=true; mycanvas.repaint(); } } } ; private Timer timer = new Timer(60, run); //内部类继承Canvas充当画布 private class myCanvas extends Canvas { public void paint(Graphics g) { //绘制内容 //如果游戏结束 if (isOver) { //给画笔颜色 g.setColor(new Color(0xFF9A1B44, true)); //给画笔字体 g.setFont(new Font("宋体", FontStyle.BOLD, 25)); g.drawString("Game Over!", 120, TABLE_HEIGHT / 4); g.drawString("成绩"+score+"分", 120, TABLE_HEIGHT / 3); g.drawString("按空格再来一次", 120, TABLE_HEIGHT / 2); } else { //否则游戏中 //绘制小球 g.setColor(new Color(0xFF09FAA6, true)); g.fillOval((int) BallX, (int) BallY, BALL_SIZE, BALL_SIZE); //画一个积分系统 //上色 g.setColor(new Color(0xE8DC0C77,true)); //给画笔字体 g.setFont(new Font("宋体", FontStyle.BOLD, 25)); g.drawString("得分:"+score, 25, 25); //绘制球拍 g.setColor(new Color(0xFF0E51D7, true)); g.fillRect((int) RACKET_X, (int) RACKET_Y, RACKET_WIDTH, RACKET_HEIGHT); timer.start(); } } } //创建绘画区 myCanvas mycanvas = new myCanvas(); //窗口初始化 public void init() { JFrame jFrame = new JFrame(); jFrame.setTitle("弹球小游戏");//窗口名称 jFrame.pack();//自适应布局 jFrame.setVisible(true);//可见 jFrame.add(mycanvas); jFrame.setBounds(500, 200, TABLE_WIDTH, TABLE_HEIGHT); jFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);//关闭 mycanvas.setPreferredSize(new Dimension(TABLE_WIDTH, TABLE_HEIGHT));//画布大小 jFrame.setResizable(false);//大小不可变 KeyListener keyListener = new KeyAdapter() { //重写键盘被按压的方法 @Override public void keyPressed(KeyEvent e) { //接收按下的是哪个键 int key = e.getKeyCode(); if (key == KeyEvent.VK_LEFT) { if (RACKET_X >0) { RACKET_X -= 30; } } if (key == KeyEvent.VK_RIGHT) { if (RACKET_X <(TABLE_WIDTH - RACKET_WIDTH )) { RACKET_X += 30; } } if (key == KeyEvent.VK_SPACE) { if (isOver=true) { Demo.main(null); } } } }; //窗口获取键盘监听 jFrame.addKeyListener(keyListener); //键盘获取键盘监听 mycanvas.addKeyListener(keyListener); } public static void main(String[] args) { new Demo(); } }

以上就是java实现弹球小游戏的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java实现弹球小游戏
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址