版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026云南昆明西山区永昌街道办事处招聘7人备考题库附参考答案详解(典型题)
- 2026上半年安徽事业单位联考界首市招聘50人备考题库附答案详解(轻巧夺冠)
- 2026中国再保险(集团)股份有限公司博士后科研工作站招聘备考题库附答案详解(基础题)
- 行李计划员测试验证能力考核试卷含答案
- 味精提取工岗前理论评估考核试卷含答案
- 2026年工程结构在极端条件下的非线性响应
- 水解设备搪砌工操作技能考核试卷含答案
- 2026年创意企业年报设计理念分享
- 硅橡胶装置操作工安全知识竞赛模拟考核试卷含答案
- 橡胶炼胶工操作能力水平考核试卷含答案
- 儿童讲解员礼仪
- 文物建筑勘查设计取费标准(2020年版)
- DB14∕T2248-2020 《煤矿安全风险分级管控和隐患排查治理双重预防机制实施规范》
- 办公室三办三服务课件
- 千古奇文《初心》原文
- 失禁相关性皮炎与压力性损伤的区分鉴别
- 铝合金门窗设计说明
- 食品行业仓库盘点制度及流程
- 2024四川绵阳涪城区事业单位选调(聘)笔试管理单位遴选500模拟题附带答案详解
- 发货组年终总结
- 《化工制图》试题及参考答案 (C卷)
评论
0/150
提交评论