版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、打砖块1 窗体package com.game;import java.awt.*;import java.awt.event.*;import javax.swing.*;/* * 打砖块游戏 * author 孙沛林 * */public class MyWindow public static void main(String args) JFrame f = new JFrame("打砖块");f.setSize(500,500);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);MyPanel mp = new My
2、Panel();f.add(mp);/ 键盘监听mp.addKeyListener(mp);f.addKeyListener(mp);f.setVisible(true);2 面板package com.game;import java.awt.*;import java.awt.event.*;import javax.swing.*;/* * 游戏界面 * author 孙沛林 * */public class MyPanel extends JPanel implements Runnable, KeyListenerThread t = null; / 线程int speed = 8;
3、 / 暂停的毫秒数Ball ball; / 小球Pane pane; / 挡板int m = 8; / 横向砖块int n = 5; / 纵向砖块Block blocks; / 砖块数组/* * 构造器 */public MyPanel()ball = new Ball();/ 生成小球pane = new Pane(); / 生成挡板blocks = new Blockmn;/ 生成砖块数组for(int i = 0; i<m; i+ )for (int j = 0; j < n; j+) blocksij = new Block(i,j);t = new Thread(this
4、); / 产生线程t.start(); / 启动线程/* * 绘图 */public void paint(Graphics g)g.clearRect(0, 0, 500, 500);/ 边界g.setColor(Color.blue);g.drawRect(40, 40, 400, 400);/ 挡板g.setColor(Color.gray);for(int i = 0; i<m; i+ )for (int j = 0; j < n; j+) if(blocksij.visible)g.fillRoundRect(blocksij.x, blocksij.y, blocksi
5、j.w, blocksij.h, blocksij.r, blocksij.r);/ 小球g.setColor(Color.black);g.fillOval(ball.x, ball.y, ball.d, ball.d);/ 挡板g.setColor(Color.orange);g.fillRoundRect(pane.x, pane.y, pane.w, pane.h, pane.r, pane.r);/* * 运行 */public void run() while(true)ball.move();/ 小球移动一步for(int i = 0; i<m; i+ )for (int
6、j = 0; j < n; j+) if(blocksij.visible)blocksij.crash(ball);/ 碰撞判断+处理repaint();try t.sleep(speed); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();/* * 按下键盘 */public void keyPressed(KeyEvent e) if(e.getKeyCode() = KeyEvent.VK_LEFT)pane.left();if(e.getKeyCode() =
7、 KeyEvent.VK_RIGHT)pane.right();public void keyReleased(KeyEvent arg0) / TODO Auto-generated method stubpublic void keyTyped(KeyEvent arg0) / TODO Auto-generated method stub3 小球package com.game;/* * 小球类 * author 孙沛林 * */public class Ball /* * 属性 */int x =100;int y =200;int dx = 1;int dy = 1;int d =
8、10; / 直径/* 容器的参数 */int xContainer = 40;int yContainer = 40;int width = 400;int height = 400;/* * 构造器 */public Ball()/* * 移动一步 */public void move()x += dx;y += dy;this.wall();/* * 碰四周边界反弹 */public void wall()if(x < this.xContainer | x > this.xContainer+this.width - d )dx *= -1;if(y < this.yC
9、ontainer | y > this.yContainer+this.height - d )dy *= -1;4 挡板package com.game;/* * 挡板类 - 圆角矩形 * author 孙沛林 * */public class Pane int x = 200;int y = 440;int dx = 4;int w = 80; / 自宽int h = 10; / 自高int r = 5; / 圆角弧度/* 容器的参数 */int xContainer = 40; / 容器起点横坐标int width = 400; / 容器宽度/* * 构造器 */public Pa
10、ne()/* * 移动 */public void left()if(x>this.xContainer)x -= dx;/* * 移动 */public void right()if(x<this.xContainer + this.width - this.w)x += dx;5 砖块package com.game;/* * 砖块类 - 圆角矩形 * author 孙沛林 * */public class Block int x;int y;int w = 49;int h = 20;int r = 5;int xContainer = 40; / 容器起点横坐标boolea
11、n visible = true;/* * 构造器 */public Block()/* * 构造器 * param x * param y */public Block(int x, int y)this.x = x*(w+1) + xContainer + 1;this.y = y*(h+1) + xContainer + 1;/* * 计算小球是否接触的砖块 * 如果接触了左右两边,那么改变小球的dx方向 * 如果接触了上下两边,那么改变小球的dy方向 * 同时,本砖块消失 * param ball 小球 */public void crash(Ball ball)if(ball.y + ball.d > this.y && ball.y < this.y + this.h / 纵向区间&& (ball.x + ball.d = this.x | ball.x = this.x + this.w ) / 横向区间 )ball.dx *= -1;this.visible = false;if(ball.x +
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业水产养殖销售协议格式2024年版一
- 2025-2030全球卡布奇诺发泡剂行业调研及趋势分析报告
- 二零二五年机场建设砂石料购销合同2篇
- 2025年全球及中国望远镜赤道仪跟踪支架行业头部企业市场占有率及排名调研报告
- 二零二五年度酒吧软装产品环保认证采购合同3篇
- 二零二五年度新型担保服务汽车贷款合同3篇
- 二零二五版商业保理业务财务担保合同账务流程优化2篇
- 二零二五年精装房租赁中介合同范本2篇
- 二零二五年度校园代理招聘服务协议书2篇
- 二零二五年度宾馆与周边餐饮企业联营合同范本3篇
- 2025年河北供水有限责任公司招聘笔试参考题库含答案解析
- 《材料分析测试技术》全套教学课件
- 人教版8年级上英语各单元语法课件大全
- (完整版)形式发票模版(国际件通用)
- 武汉东湖宾馆建设项目委托代建合同
- 安徽大学大学生素质教育学分认定办法
- 巴布亚新几内亚离网光储微网供电方案
- 高度限位装置类型及原理
- 中文版gcs electrospeed ii manual apri rev8v00印刷稿修改版
- 新生儿预防接种护理质量考核标准
- 除氧器出水溶解氧不合格的原因有哪些
评论
0/150
提交评论