




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Java 程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告年級、專業(yè)、班級2011級網(wǎng)絡(luò)1班2011級網(wǎng)絡(luò)1班2011級網(wǎng)絡(luò)1班姓名實(shí)驗(yàn)題目編程實(shí)現(xiàn)雷電游戲?qū)嶒?yàn)時(shí)間2013.10.22-2013.11.6實(shí)驗(yàn)地點(diǎn)主教0410實(shí)驗(yàn)成績 實(shí)驗(yàn)性質(zhì)驗(yàn)證性 設(shè)計(jì)性 綜合性教師評價(jià):算法/實(shí)驗(yàn)過程正確; 源程序/實(shí)驗(yàn)內(nèi)容提交 程序結(jié)構(gòu)/實(shí)驗(yàn)步驟合理;實(shí)驗(yàn)結(jié)果正確; 語法、語義正確; 報(bào)告規(guī)范; 其他: 評價(jià)教師簽名:一、實(shí)驗(yàn)?zāi)康睦肑ava GUI、Java Graphics和多線程技術(shù),編寫實(shí)現(xiàn)飛行射擊游戲雷電。二、實(shí)驗(yàn)項(xiàng)目內(nèi)容1、根據(jù)項(xiàng)目任務(wù)書,形成完整的需求分析。2、根據(jù)需求,完成詳細(xì)的設(shè)計(jì)。3、基于Java編程實(shí)現(xiàn)。3、 實(shí)驗(yàn)
2、過程或算法(源程序)關(guān)鍵代碼:Boss.javapackage cqu;public class Boss extends FlyingObjectpublic Boss(int x) super(x, 0, 250, 100, Resources.bossPNG);/ TODO Auto-generated constructor stubOverridepublic void move(long time) / TODO 自動生成的方法存根public Bullet fire()int x=(int) (Math.random()*350);int y=100;Bullet b=new B
3、ullet(x,y,true);return b;Bullet.javapackage cqu;public class Bullet extends FlyingObject public int xSpeed;public Bullet(int x, int y,boolean enemy) super(x, y, 10, 10, Resources.bulletPNG);this.enemy=enemy;xSpeed=0;private boolean enemy;public boolean isEnemy() return enemy;Overridepublic void move
4、(long time) if(time%40=0)if(enemy)y+=30;elsey-=30;x+=xSpeed;CBullet.javapackage cqu;public class CBullet extends FlyingObject public CBullet(int x) super(x, 0, 30, 30, Resources.addPNG);Overridepublic void move(long time) if(time%160=0)y+=Math.random()*4+10; / x+=4-Math.random()*6;Enemy.javapublic c
5、lass Enemy extends FlyingObject public Enemy(int x, int y) super(x, y, 40, 40, Resources.enemyPNG);public Bullet fire()int x=this.x+12;int y=this.y+this.height;Bullet b=new Bullet(x,y,true);return b;Overridepublic void move(long time) if(time%160=0)y+=Math.random()*4+10; / x+=4-Math.random()*6;FlyOb
6、ject.javapackage cqu;import java.awt.Graphics;import java.awt.image.BufferedImage;abstract public class FlyingObject protected int x;protected int y;protected int width;protected int height;private BufferedImage image;public FlyingObject(int x, int y, int width, int height, BufferedImage image) supe
7、r();this.x = x;this.y = y;this.width = width;this.height = height;this.image = image;abstract public void move(long time);public void draw(Graphics g)g.drawImage(image, x, y, width, height, null);public int getWidth() return width;public void setWidth(int width) this.width = width;public int getHeig
8、ht() return height;public void setHeight(int height) this.height = height;/*public boolean collision(FlyingObject other)return false;*/public int getX() return x;public void setX(int x) this.x = x;public int getY() return y;public void setY(int y) this.y = y;GameCanvas.javapackage cqu;import java.aw
9、t.Graphics;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.util.ArrayList;import java.util.List;import javax.swing.JPanel;public class GameCanvas extends JPanel implements KeyListenerprivate boolean sta
10、rt1=false;private boolean start2=true;Thread animate;CBullet cbullet=new CBullet(int)(Math.random()*350);int cflag=0;int isdeath=1;int end=0;int sflag=0;int y=0;int count=0;boolean click=false;private List enemies=new ArrayList();private List ebullets=new ArrayList();private List hbullets=new ArrayL
11、ist();private List blast =new ArrayList();private Hero hero;private Boss boss;public GameCanvas()this.addKeyListener(this);hero=new Hero(200,500);boss=new Boss(int)(Math.random()*150);Enemy e=new Enemy(int)(Math.random()*350),0);enemies.add(e);animate=new Thread()/int isdeath=1;int scale=1;/int cfla
12、g=0;public void run()long time=0;while(true)try if(isdeath=1)time=0;click=false;ebullets.clear();hbullets.clear();enemies.clear();else if(isdeath=2)time=0;click=true;ebullets.clear();hbullets.clear();enemies.clear();else /if(isdeath=0)EnemyMove(time);for(Bullet e:ebullets)e.move(time);for(Bullet h:h
13、bullets) h.move(time);if(scale=1)if(time%1000=0)for(Enemy e:enemies)Bullet b=e.fire();ebullets.add(b);else if(time%800=0)for(Enemy e:enemies)Bullet b=e.fire();ebullets.add(b);if(end=1)for(int i=0;i=600)y=0;time+=40;Thread.sleep(50); catch (InterruptedException e) e.printStackTrace();repaint();blast.
14、clear();private void getaway()for(int i=0;i600)enemies.remove(i);for(int i=0;i600)ebullets.remove(i);for(int i=0;ihbullets.size();i+)if(hbullets.get(i).getY()600)cflag=0;private void keymove()if(hero.up)hero.moveUp(8);if(hero.down)hero.moveDown(8);if(hero.left)hero.moveLeft(8);if(hero.right)hero.mov
15、eRight(8);private void collision() int esize=enemies.size();/int hsize=hbullets.size();for(int i=0;i=1)for(int j=0;jhbullets.size();j+)int flag=0;if(enemies.get(i).getX()hbullets.get(j).getX()if(hbullets.get(j).getX()enemies.get(i).getX()+30)if(enemies.get(i).getY()hbullets.get(j).getY()if(hbullets.
16、get(j).getY()enemies.get(i).getY()+30) Blast a=new Blast(); a.set(hbullets.get(j).getX(),hbullets.get(j).getY(); blast.add(a);hbullets.remove(j);enemies.remove(i);flag=1; if(flag=1)break;if(end=1)for(int i=0;iboss.getX()&hbullets.get(i).getX()0&hbullets.get(i).getY()=300)isdeath=2;/*for(int i=0;iene
17、mies.size();i+)if(enemies.get(i).getX()hero.getX()if(hero.getX()enemies.get(i).getX()+30)if(enemies.get(i).getY()hero.getY()if(hero.getY()enemies.get(i).getY()+30)if(sflag=0) isdeath=1;elsesflag=0;Blast a=new Blast(); a.set(hero.getX(),hero.getY(); blast.add(a); enemies.remove(i); break;if(enemies.g
18、et(i).getX()hero.getX()+35)if(hero.getX()+35enemies.get(i).getX()+30)if(enemies.get(i).getY()hero.getY()if(hero.getY()enemies.get(i).getY()+30)if(sflag=0) isdeath=1;elsesflag=0;Blast a=new Blast(); a.set(hero.getX(),hero.getY(); blast.add(a); enemies.remove(i); break;for(int i=0;ihero.getX()if(hero.
19、getX()+25ebullets.get(i).getX()if(ebullets.get(i).getY()hero.getY()if(hero.getY()+25ebullets.get(i).getY()if(sflag=0) isdeath=1;elsesflag=0;Blast a=new Blast(); a.set(hero.getX(),hero.getY(); blast.add(a);ebullets.remove(i); break;*/if(cbullet.getX()hero.getX()if(cbullet.getY()hero.getY()&hero.getY(
20、)cbullet.getY()+20)cflag=0;sflag=1;if(cbullet.getX()hero.getX()+25)if(cbullet.getY()hero.getY()&hero.getY()cbullet.getY()+20)cflag=0;sflag=1;/hero bulletprivate void addNewEnemy(long time) if(time=50000&time150000)scale=2;if(time%100000=0)cflag=1;cbullet=new CBullet(int)(Math.random()*350);if(time%5
21、000=0)for(int i=0;i=150000)if(end=0)if(time%100000=0)cflag=1;cbullet=new CBullet(int)(Math.random()*350);if(time%5000=0)for(int i=0;i200000)if(time%10000=0)cflag=1;cbullet=new CBullet(int)(Math.random()*350);end=1;private void EnemyMove(long time) for(Enemy e:enemies)e.move(time);if(cflag=1)cbullet.
22、move(time);this.addMouseListener(new MouseListener() Overridepublic void mouseReleased(MouseEvent e) / TODO 自動生成的方法存根Overridepublic void mousePressed(MouseEvent e) / TODO 自動生成的方法存根Overridepublic void mouseExited(MouseEvent e) / TODO 自動生成的方法存根Overridepublic void mouseEntered(MouseEvent e) / TODO 自動生成
23、的方法存根Overridepublic void mouseClicked(MouseEvent e) / TODO 自動生成的方法存根 /System.out.println(e.getX()+ +e.getY();if(!click)if(e.getX()47&e.getX()237&e.getY()0)y-=d;elsey=0;public void moveDown(int d)if(y0)x-=d;elsex=0;public void moveRight(int d)if(x+d360)x+=d;Resources.javapackage cqu;import java.awt.i
24、mage.BufferedImage;import java.io.IOException;import javax.imageio.ImageIO;public class Resources static try enemyPNG=ImageIO.read(Resources.class.getResourceAsStream(/enemy .png);bulletPNG=ImageIO.read(Resources.class.getResourceAsStream(/bullet.png);heroPNG=ImageIO.read(Resources.class.getResource
25、AsStream(/hero.png);blastPNG=ImageIO.read(Resources.class.getResourceAsStream(/blast.png);startPNG=ImageIO.read(Resources.class.getResourceAsStream(/start.png);backPNG=ImageIO.read(Resources.class.getResourceAsStream(/back.png);addPNG=ImageIO.read(Resources.class.getResourceAsStream(/add.png);endPNG=ImageIO.read(Resources.class.getResourceAsStream(/end.png);bossPNG=ImageIO.read(Resources.class.getReso
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工業(yè)磁力應(yīng)用設(shè)備合作協(xié)議書
- 2025年甘肅財(cái)貿(mào)職業(yè)學(xué)院單招職業(yè)技能測試題庫含答案
- 2025至2030年中國氣動式透明膜三維包裝機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年湖北省恩施土家族苗族自治州單招職業(yè)傾向性測試題庫帶答案
- 2025至2030年中國橡皮輪數(shù)據(jù)監(jiān)測研究報(bào)告
- 《四、-設(shè)置超鏈接與動作按鈕》教學(xué)設(shè)計(jì) -2024-2025學(xué)年初中信息技術(shù)人教版七年級上冊
- 山東省青島市萊西市2023-2024學(xué)年高二上學(xué)期11月期中考試地理試題(解析版)
- 山東省臨沂市2023-2024學(xué)年高三上學(xué)期期中考試地理試題(解析版)
- Unit 2 Saving the earth Topic 3 Section B 教學(xué)設(shè)計(jì) 2024-2025學(xué)年仁愛版英語九年級上冊
- 江蘇省無錫市江陰市四校聯(lián)考2023-2024學(xué)年高二上學(xué)期期中考試地理試題(解析版)
- 幼兒園大班音樂教案《我們多快樂》
- GB/T 22919.9-2024水產(chǎn)配合飼料第9部分:大口黑鱸配合飼料
- 《草船借箭》課本劇劇本-4篇
- 體育與兒童心理健康教育教材教學(xué)課件
- 婚姻家庭法(第三版)教案全套 項(xiàng)目1-9 婚姻家庭法概述-特殊婚姻家庭關(guān)系
- 可持續(xù)采購與供應(yīng)鏈管理
- 心肺復(fù)蘇及AED教學(xué)
- 電梯維保經(jīng)營計(jì)劃書
- 工程部部門助理崗位職責(zé)
- 急需學(xué)科專業(yè)引導(dǎo)發(fā)展清單
- DB4401-T 71-2020 臭氧-活性炭深度凈水工藝設(shè)計(jì)與運(yùn)行管理技術(shù)規(guī)程
評論
0/150
提交評論