版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶文化与茶艺鉴赏 教案 项目二 得茶益-茶与健康
- 光的折射(教案)
- 2024-2025学年重庆市八中高三上学期适应性月考卷(二)地理试题及答案
- 载体桩自动化施工技术规范编制说明
- 上海市市辖区(2024年-2025年小学五年级语文)统编版能力评测(上学期)试卷及答案
- 九年级化学上册全套教案
- DB11T 1095-2014 旅行社服务网点服务要求
- 山东省济南市莱芜区2024-2025学年九年级上学期期中考试化学试题(含答案)
- 河北省张家口市桥西区2024-2025学年九年级上学期11月期中化学试题(含答案)
- 2024-2025学年湖北省高中名校联盟高三(上)月考物理试卷(11月)(含答案)
- 《篮球原地双手胸前传接球》教案 (三篇)
- 3上修改病句练习
- 2024年广东茂名高州市教师发展中心和高州市教育事务中心选聘历年高频难、易错点500题模拟试题附带答案详解
- 2024年建筑继续教育-一级建造师继续教育考试近5年真题集锦(频考类试题)带答案
- 第7章-机器学习
- 2024年秋季新人教版7年级上册生物课件 第2单元 第2章大单元整体设计
- 第1课 课题一《课外生活小调查·周末生活我采访》(教案)-2024-2025学年三年级上册综合实践活动浙教版
- 世界的气温和降水课件
- 大学生职业发展与就业指导 课件 模块3、4 职业世界探索、大学生就业和未来发展的主要方式
- 离心压缩机设计-曼透平
- 北京市通州区2024届高三上学期期中质量检测数学试题 含解析
评论
0/150
提交评论