java弹弹球实验报告_Java弹球游戏实验报告—chen

41528d3028836879cd698677c3999917.gifJava弹球游戏实验报告—chen

课 程 设 计 报 告 题 目 弹球小游戏 姓 名 方成 学 号 20 专 业 java 指导教师 陈华恩 2013年 12 月 30 目录 一、实验目的2 二、需求分析2 三、实验任务2 1、设计3 2、程序要求:3 3、选作题:3 四、开发工具与平台3 五、设计思路3 1、界面设计3 2、逻辑设计3 3、程序测试4 六、实验总结5 七、程序代码5 八、参考文献11 1.《疯狂java讲义》12 2.《算法导论》12 3.《java编程思想》12 一、实验目的 1、 熟练掌握java面向对象编程。 2、 掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。 3、 掌握timer类的灵活使用 4、 培养独立查找资料,并解决问题的能力。 二、需求分析 经典的碰撞球是一个的古老游戏,目的是在训练人的反应能力。只有通过把所有的砖块消除完,才能顺利的完成任务。游戏要求如下: 1、 实现球速度的随机性 2、 实现球碰撞到边缘或者砖块自动反弹 3、 实现游戏可以随时暂停 4、 实现游戏结束后能重新开始游戏 三、实验任务 1、 设计 设计并编程实现弹球程序:用户能通过菜单或者按钮新增一小球,该小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力只改变小球的运动方向,小球仍按照初始速度匀速运动,且不考虑小球之间的碰撞)。 2、 程序要求: (1) 具备相应界面,并通过事件编程,实现相应的菜单或者按钮功能。 (2) 使用timer,在程序窗口区域绘制小球,并以线程控制小球的移动,实现动画效果。 3、 选作题: (1) 实现奖励机制及关卡机制 四、开发工具与平台 JDK1.6+eclipse 五、设计思路 1、 界面设计 首先建立窗口类 继承自JFrame。该界面为主界面。 在加上按钮—开始与暂停 在加入JPanel面板,用于图形界面. 2、 逻辑设计 程序用过响应timer事件,按钮事件及键盘事件来管理程序的运行。 程序开始 窗口运行,等待响应用户消息 游戏开始,小球开始移动 移动速度在每次反弹后发生变化。如果小球碰倒边界或者砖块,小球方向发生变化 若某个小球掉到球拍下面,游戏结束。按开始按钮则重新开始游戏 退出 移动球拍来使小球不至于掉到球拍下面 3、 程序测试 六、实验总结 1、这次实验综合运用了GUI编程,使我对多线程编程有了一定的了解,对java的多线程机制有了一点理解,更加熟练的运用swing组件设计界面,响应消息,接口的实现等等。 2、通过课程设计的编程和对编程过程中遇到的问题的思考,切实的提高了我的编程能力,通过这次课程设计,我巩固所了学过的知识,能用JAVA熟练地运用其中的一些,进一步掌握了各个指令的功能是转向。 七、程序代码 package com.fangcheng.ball.game; import java.awt.Font; import java.awt.event.*; import javax.swing.*; import java.util.ArrayList; import java.util.Random; public class BallGame extends JFrame implements ActionListener,KeyListener{ private JPanel p; private JButton start; private JButton stop; private JLabel ball; private JLabel qiupai; private JLabel bg;//用来放置背景图片的JLabel private JLabel win; private JLabel over; private int x1=50; private int x2=15; private int y1=325; private int y2=340;//球与球拍的初始位置 private Timer time;//周期性触发球的移动事件的timer对象 private boolean isRight=false;//球是否向右移动 private boolean isDow=false;//球是否为下降 private boolean isOver=false;//是否游戏结束 private boolean isYi=false;//球拍是否能移动 private int xsudu=3; private int ysudu=3;//球的x,y速度,初始值为3 private Random ran=new Random();//用于随机产生球的x,y速度 private ArrayList removeBrickList;//被移除的砖块的list private ArrayList brickList; //游戏时砖块的list private Font font; /** * 构造器,参数为窗口标题 * @param s */ public BallGame(String s){ super(s); gameShow(); } /** * 用于游戏窗口绘制的方法 */ public void gameShow(){ //初始化组件 ImageIcon img1=new ImageIcon(BallGame.class.getResource(“/images/ball.png“)); ImageIcon img2=new ImageIcon(this.getClass().getResource(“/images/pa.png“)); ImageIcon img3=new ImageIcon(this.getClass().getResource(“/images/kuang.png“)); ImageIcon img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET应用迁移到.NET Core(二)风险评估

2016年12月1日下午微软技术大会Microsoft Ignite China,有幸和大家分享一门课程,课程信息如下,欢迎大家到时来捧场。本文介绍下应用迁移的风险评估。 很多移植项目超出预算或未能按时完成,主要是因为没有很好地管理移植过程中可能…

Java IO: PipedInputStream

转载自 Java IO: PipedInputStream译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) PipedInputStream可以从管道中读取字节流数据,代码如下: InputStream input new PipedInputStream(pipedOutputStream); int data input.read(); …

java阿里数据库连接池_Java学习:数据库连接池技术

本节内容数据库连接池Spring JDBC : JDBC Template数据库连接池1.概念:其实就是一个容器(集合),存放数据库连接的容器当系统初始化好后,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对…

/ vs /*

/ 匹配所有的请求&#xff1b;&#xff08;不包括.jsp&#xff09; /* 匹配所有的请求&#xff1b;&#xff08;包括.jsp&#xff09; <servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mappi…

.NET应用迁移到.NET Core(一)

2016年12月1日下午微软技术大会Microsoft Ignite China&#xff0c;有幸和大家分享一门课程&#xff0c;课程信息如下&#xff0c;欢迎大家到时来捧场。本文介绍下应用迁移的一个过程。 把一个运行在某个操作系统和硬件结构上的软件&#xff0c;在另一个操作系统和硬件结构上重…

mybatis关联配置(一对多配置)

mybatis框架的关联配置&#xff1a; 首先假设我们数据库中有两个表&#xff0c;一个表示move&#xff0c;另一个是moveType,move里面有一个字段typeid,与moveType表里面的id相对应。相信大家已经看出来了&#xff0c;一个moveType对应多个move,我们查询move字段的时候&#xff…

js模块化历程

转载自 js模块化历程这是一篇关于js模块化历程的长长的流水账&#xff0c;记录js模块化思想的诞生与变迁&#xff0c;展望ES6模块化标准的未来。经历过这段历史的人或许会感到沧桑&#xff0c;没经历过的人也应该知道这段历史。无模块时代在ajax还未提出之前&#xff0c;js还只…

WIN10的IE错误代码inet_e_resource_not_found解决办法

WIN10的IE错误代码inet_e_resource_not_found解决办法 原创 候鸟307183846 最后发布于2019-08-27 13:31:54 阅读数 2413 收藏 展开 解决方案&#xff1a; 1、在Internet选项里&#xff0c;点《连接》标签&#xff0c;按下《局域网设置》按钮&#xff0c;在对话框里&#…

java schema名_关于Schema的名字空间

基本的XML Schema的使用就是这样&#xff0c;下面我们要介绍XML Schema的另外一个核心的部分也是Schema最关键的一个部分&#xff0c;就是关于Schema的名字空间(namespace)的问题。在上面关于XML Schema的介绍中&#xff0c;为了把读者集中到对XML Schema的语法理解上&#xff…

404问题

、配置Tomcat 启动测试&#xff01; 可能遇到的问题&#xff1a;访问出现404&#xff0c;排查步骤&#xff1a; 查看控制台输出&#xff0c;看一下是不是缺少了什么jar包。如果jar包存在&#xff0c;显示无法输出&#xff0c;就在IDEA的项目发布中&#xff0c;添加lib依赖&…

@Valid注解的使用---SpringMvc中的校验框架@valid和@validation的概念及相关使用

https://www.cnblogs.com/charlypage/p/9385146.html 第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析 关于spring中的validate注解后台校验的解析 在后台开发过程中&#xff0c;对参数的校验成为开发环境不可缺少的一个环节。比如参数不能为null&…

如何设计java线程安全类_如何设计线程安全的Java程序

什么是线程安全的(thread-safe)&#xff1f;在java中&#xff0c;线程安全的指的是代码可以在并发的或者多线程的环境下安全的使用或者共享&#xff0c;并且它们都将按照期望的方式运行。任何代码&#xff0c;类或者对象&#xff0c;如果它们在并发的环境中运行表现出的行为与在…

java中的AIO

转载自 java中的AIO简介jdk7中新增了一些与文件(网络)I/O相关的一些api。这些API被称为NIO.2&#xff0c;或称为AIO(Asynchronous I/O)。AIO最大的一个特性就是异步能力&#xff0c;这种能力对socket与文件I/O都起作用。AIO其实是一种在读写操作结束之前允许进行其他操作的I/O…

Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)

最近在用Mybatis做项目的时候遇到了不少问题&#xff0c;今天我就在这和大家分享一下&#xff0c;稀稀拉拉的研究了两天&#xff0c;终于搞好了&#xff01; 开发人员&#xff1a;1111 开发软件&#xff1a;Myeclipse 用到的框架技术&#xff1a;Mybatis 数据库&#xff1a;MyS…

细说ASP.NET Core静态文件的缓存方式

一、前言 我们在优化Web服务的时候&#xff0c;对于静态的资源文件&#xff0c;通常都是通过客户端缓存、服务器缓存、CDN缓存&#xff0c;这三种方式来缓解客户端对于Web服务器的连接请求压力的。 本文指在这三个方面&#xff0c;在ASP.NET Core中静态文件的实现过程和使用方法…

金田项目的总结

一个搜索框对手机、姓名、内容进行搜索 <select id"list" parameterType"java.lang.String" resultMap"BaseResultMap">select<include refid"Base_Column_List"/>from user_backstagewhere 11 and is_deletedN<if te…

18000 6c java_面向ISO18000-6C协议的无源超高频射频识别标签芯片设计

摘要&#xff1a;This paper presents a new fully integrated wide-range UHF passive RFID tag chip design that is compatible with the ISO18000-6C protocol. In order to reduce the die area, an ultra-low power CMOS voltage regulator without resistors and an are…

Vue异步组件

转载自 Vue异步组件 在大型应用中&#xff0c;我们可能需要将应用分割成小一些的代码块&#xff0c;并且只在需要的时候才从服务器加载一个模块。为了简化&#xff0c;Vue 允许你以一个工厂函数的方式定义你的组件&#xff0c;这个工厂函数会异步解析你的组件定义。Vue 只有在…

文章中文字乱码问题解决办法集合

乱码问题 测试步骤&#xff1a; 1、我们可以在首页编写一个提交的表单 <form action"/e/t" method"post"><input type"text" name"name"><input type"submit"> </form>2、后台编写对应的处理类 …

.NET开源两年之后社区贡献如何

微软在 2014 年开源了 .NET 核心框架&#xff0c;欢迎社区贡献代码。2015 年&#xff0c;一位 .NET 开发者分析了开源一年之后的社区贡献。2016 年年底又到了&#xff0c;这位开发者再次发表文章&#xff0c;分析了 .NET 开源两年之后的情况。 这一次他分析了 15 个 .NET 开源项…