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,有幸和大家分享一门课程,课程信息如下,欢迎大家到时来捧场。本文介绍下应用迁移的风险评估。 很多移植项目超出预算或未能按时完成,主要是因为没有很好地管理移植过程中可能…

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

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

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

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

404问题

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

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

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

java中的AIO

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

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

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

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

一、前言 我们在优化Web服务的时候,对于静态的资源文件,通常都是通过客户端缓存、服务器缓存、CDN缓存,这三种方式来缓解客户端对于Web服务器的连接请求压力的。 本文指在这三个方面,在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…

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

乱码问题 测试步骤&#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 开源项…

java把控件跑挂了_Java代码动态修改 ConstraintLayout 内控件布局的辅助类

##上图ConstraintUtil.javaimport android.support.annotation.IdRes;import android.support.constraint.ConstraintLayout;import android.support.constraint.ConstraintSet;import android.transition.TransitionManager;/*** Created by xiaolei on 2017/9/8.*/public cla…

Vue动态组件

转载自 Vue动态组件 在动态组件上使用 keep-alive 我们之前曾经在一个多标签的界面中使用 is 特性来切换不同的组件&#xff1a; <component v-bind:is"currentTabComponent"></component> 当在这些组件之间切换的时候&#xff0c;你有时会想保持这些组…

ASP.NET Core Kestrel部署HTTPS

ASP.NET Core配置 Kestrel部署HTTPS。现在大部分网站已经部署HTTPS&#xff0c;大家对于安全越来越重视。 今天简单介绍一下ASP.NET Core 部署HTTPS&#xff0c;直接通过配置Kestrel。大家也可以通过前置Nginx来部署HTTPS。 下面直接进入正题。 新建项目并添加引用 新建一个ASP…

配置phython环境

参考资料 https://www.runoob.com/python/python-install.html https://www.cnblogs.com/huangbiquan/p/7784533.html Python下载 Python最新源码&#xff0c;二进制文档&#xff0c;新闻资讯等可以在Python的官网查看到&#xff1a; Python官网&#xff1a;https://www.py…

ASP.NET Core 之 Identity 入门(三)

前言 在上一篇文章中&#xff0c;我们学习了 CookieAuthentication 中间件&#xff0c;本篇的话主要看一下 Identity 本身。 最早2005年 ASP.NET 2.0 的时候开始&#xff0c; Web 应用程序在处理身份验证和授权有了很多的变化&#xff0c;多了比如手机端&#xff0c;平板等&…

玩物得志Java笔试题_代码规范利器-CheckStyle

本期内容分为五个部分&#xff0c;阅读时长预估7分钟&#xff1a;使用背景CheckStyle使用意义CheckStyle安装与使用CheckStyle检查配置示例落地使用情况及效果使用背景玩物得志目前还处在一个狂奔业务的时期&#xff0c;开发一般都全力支撑业务的快速奔跑&#xff0c;没有太多的…

Json交互处理

Json交互处理 JSON简介 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式&#xff0c;目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写&#xff0…

利用 async amp; await 的异步编程

一、异步编程的简介 通过使用异步编程&#xff0c;你可以避免性能瓶颈并增强应用程序的总体响应能力。 Visual Studio 2012 引入了一个简化的方法&#xff0c;异步编程&#xff0c;在 .NET Framework 4.5 和 Windows 运行时利用异步支持。编译器可执行开发人员曾进行的高难度工…