java弹弹球实验报告_Java弹球游戏实验报告—chen
Java彈球游戲?qū)嶒?yàn)報(bào)告—chen
課 程 設(shè) 計(jì) 報(bào) 告 題 目 彈球小游戲 姓 名 方成 學(xué) 號(hào) 20 專(zhuān) 業(yè) java 指導(dǎo)教師 陳華恩 2013年 12 月 30 目錄 一、實(shí)驗(yàn)?zāi)康? 二、需求分析2 三、實(shí)驗(yàn)任務(wù)2 1、設(shè)計(jì)3 2、程序要求:3 3、選作題:3 四、開(kāi)發(fā)工具與平臺(tái)3 五、設(shè)計(jì)思路3 1、界面設(shè)計(jì)3 2、邏輯設(shè)計(jì)3 3、程序測(cè)試4 六、實(shí)驗(yàn)總結(jié)5 七、程序代碼5 八、參考文獻(xiàn)11 1.《瘋狂java講義》12 2.《算法導(dǎo)論》12 3.《java編程思想》12 一、實(shí)驗(yàn)?zāi)康?1、 熟練掌握java面向?qū)ο缶幊獭?2、 掌握Swing圖形用戶(hù)界面編程以及事件處理等,掌握java繪圖技術(shù)。 3、 掌握timer類(lèi)的靈活使用 4、 培養(yǎng)獨(dú)立查找資料,并解決問(wèn)題的能力。 二、需求分析 經(jīng)典的碰撞球是一個(gè)的古老游戲,目的是在訓(xùn)練人的反應(yīng)能力。只有通過(guò)把所有的磚塊消除完,才能順利的完成任務(wù)。游戲要求如下: 1、 實(shí)現(xiàn)球速度的隨機(jī)性 2、 實(shí)現(xiàn)球碰撞到邊緣或者磚塊自動(dòng)反彈 3、 實(shí)現(xiàn)游戲可以隨時(shí)暫停 4、 實(shí)現(xiàn)游戲結(jié)束后能重新開(kāi)始游戲 三、實(shí)驗(yàn)任務(wù) 1、 設(shè)計(jì) 設(shè)計(jì)并編程實(shí)現(xiàn)彈球程序:用戶(hù)能通過(guò)菜單或者按鈕新增一小球,該小球?qū)碾S機(jī)的位置出現(xiàn),并具有隨機(jī)顏色,隨機(jī)速度以及隨機(jī)的運(yùn)動(dòng)方向,小球沿初始方向勻速運(yùn)動(dòng),當(dāng)碰到窗口邊緣時(shí),小球?qū)⒁罁?jù)受力原理改變運(yùn)動(dòng)方向(可簡(jiǎn)化考慮,受力只改變小球的運(yùn)動(dòng)方向,小球仍按照初始速度勻速運(yùn)動(dòng),且不考慮小球之間的碰撞)。 2、 程序要求: (1) 具備相應(yīng)界面,并通過(guò)事件編程,實(shí)現(xiàn)相應(yīng)的菜單或者按鈕功能。 (2) 使用timer,在程序窗口區(qū)域繪制小球,并以線程控制小球的移動(dòng),實(shí)現(xiàn)動(dòng)畫(huà)效果。 3、 選作題: (1) 實(shí)現(xiàn)獎(jiǎng)勵(lì)機(jī)制及關(guān)卡機(jī)制 四、開(kāi)發(fā)工具與平臺(tái) JDK1.6+eclipse 五、設(shè)計(jì)思路 1、 界面設(shè)計(jì) 首先建立窗口類(lèi) 繼承自JFrame。該界面為主界面。 在加上按鈕—開(kāi)始與暫停 在加入JPanel面板,用于圖形界面. 2、 邏輯設(shè)計(jì) 程序用過(guò)響應(yīng)timer事件,按鈕事件及鍵盤(pán)事件來(lái)管理程序的運(yùn)行。 程序開(kāi)始 窗口運(yùn)行,等待響應(yīng)用戶(hù)消息 游戲開(kāi)始,小球開(kāi)始移動(dòng) 移動(dòng)速度在每次反彈后發(fā)生變化。如果小球碰倒邊界或者磚塊,小球方向發(fā)生變化 若某個(gè)小球掉到球拍下面,游戲結(jié)束。按開(kāi)始按鈕則重新開(kāi)始游戲 退出 移動(dòng)球拍來(lái)使小球不至于掉到球拍下面 3、 程序測(cè)試 六、實(shí)驗(yàn)總結(jié) 1、這次實(shí)驗(yàn)綜合運(yùn)用了GUI編程,使我對(duì)多線程編程有了一定的了解,對(duì)java的多線程機(jī)制有了一點(diǎn)理解,更加熟練的運(yùn)用swing組件設(shè)計(jì)界面,響應(yīng)消息,接口的實(shí)現(xiàn)等等。 2、通過(guò)課程設(shè)計(jì)的編程和對(duì)編程過(guò)程中遇到的問(wèn)題的思考,切實(shí)的提高了我的編程能力,通過(guò)這次課程設(shè)計(jì),我鞏固所了學(xué)過(guò)的知識(shí),能用JAVA熟練地運(yùn)用其中的一些,進(jìn)一步掌握了各個(gè)指令的功能是轉(zhuǎn)向。 七、程序代碼 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;//用來(lái)放置背景圖片的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;//周期性觸發(fā)球的移動(dòng)事件的timer對(duì)象 private boolean isRight=false;//球是否向右移動(dòng) private boolean isDow=false;//球是否為下降 private boolean isOver=false;//是否游戲結(jié)束 private boolean isYi=false;//球拍是否能移動(dòng) private int xsudu=3; private int ysudu=3;//球的x,y速度,初始值為3 private Random ran=new Random();//用于隨機(jī)產(chǎn)生球的x,y速度 private ArrayList removeBrickList;//被移除的磚塊的list private ArrayList brickList; //游戲時(shí)磚塊的list private Font font; /** * 構(gòu)造器,參數(shù)為窗口標(biāo)題 * @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
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java弹弹球实验报告_Java弹球游戏实验报告—chen的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 免费ddos攻击网址(ddos免费攻击网
- 下一篇: java阿里数据库连接池_Java学习: