欢迎来到天天文库
浏览记录
ID:43544477
大小:387.19 KB
页数:16页
时间:2019-10-10
《大作业报告封面A4》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、南京邮电大学计算机学院2007/2008学年第1学期《JAVA语言》课程大作业报告课题代号:1课题名称:打飞鸟游戏程序•■■,■・■,■・■•■・■■■・■・■•■■■■■■■小组成员(学号和姓名):毛锐,B05031016;毛永辉,B05031017;•■——•—•—♦—•———・—•——一一»♦—•———•—•—■———•—•————・—・—•——・—•—•——一一—王敬群,B050310211夏俊,B05031025完成时间:2008年1月2口•一一————••^―>*——■—»■■———-对应提交的电子文档打包文
2、件名称:M_B05031016_B05031017_B05031021_B05031025_1.rar成绩评定:(教师填写)在窗口中我们可以用鼠标瞄准,鼠标的移动伴随着瞄准,单击鼠标就是射击,射击的时候有枪响。这个时候我们有一个算法来判断此时此刻哪些鸟在射程内,如果在此射程就算鸟死亡。为了程序具有很大的扩展性,可移植性,我们广泛使用多线程,飞离的鸟数,死亡的鸟数,剩余的鸟数,剩余的子弹数等的统计单独使用一个线程来执行。3.2.软件设计方案3.2.1程序功能框图3.2.2程序类图random(随机产生鸟)子弹生成鸟的位置,
3、速度等信息统计子弹数统计鸟数没有鸟吋,背景音乐停止岀现瞄准射击3.2.3程序流程图3.3软件实现及相关代码(变量声明略)3.3.1翊始他(虫程序》工血;2L・pcjirtjava・Toolk11;/屋序执行的主类♦・aut>hcix*openM/publxccl«assMaxn{/**CreatesanevinstanceofMainrpublicMain(){}■z***—pairB,axgsthecoMmand1mear^uments>/publicstaticvoidniain(String[]args)-(jua
4、mFra・efrawesnewmainFra・e();frame・setVisible(true);3.3.2多线程技术(1)枪声响起,克服玩家连续快速射击而造成的“卡”的现象i・portjava.applet・Applet;□/»*播放芦音的线呈•考虑到声音的為放占住一定的时间»故单独设置为一个线程»否则会出现I卡}的现躱»»zpublicclassgunSoundThreadiapleBentsRunnable{publicvoidrun(){AudioClipclip=Applet・udjoCJip^getClas
5、s().gclip・p1&y();try{Thread.si/dtyX200);clip・stop():}catch(InterruptedExceptione){e.printStackTrace();}}}(2)随机产生鸟,包括鸟出现的位置,速度publicclassRunRandonBirdsiapleBentsRunnable{/•*CreatesanewinstanceofRunRandokBirds*/publicRunRandokBirds(birdpanelpanel){this.panel・panel;
6、}publicvoidrun(){{/*Randoarand^nevRandom();*rand.nextlnt()»产生随机数■得到鸟汛行速度等■»/Rando・rand・ne・Randon():for(intis0;i<50;i卄){intysrand.nextlnt()X100;if(y<0)ys—y“intdelaylBrand.nextInt()/il000;delayl«Math.j2«(delayl),if(delaylBS0)delayls100;mtdelaysrand.nextInt()X100;de
7、lay^Math・delay);if(delay<«20)delay+«20;birdb=nevb“d(0,y.l0);panel.add(b);RunnablersnevRuanableThread(b,panel.delay):Threadt■nevThread(r);tstart();Thread・delayl):}(1)统计信息pulilicvoidrun()try{while(true){toirdsHpanel•getList():remain_bird-50;deadbird«O;for(birdb:bir
8、ds)(if(b•isDead()I
9、b•isLeave()){remain^bird--;}_if(b•isDead())deadbii:d++;}frame・getBirdNumText()・setText(^^-t-remain^blrd+^n^);frame・geitBulletNumT^xt()・setTe
此文档下载收益归作者所有