JAVA程序設(shè)計(jì)課程設(shè)計(jì)(論文)坦克大戰(zhàn)游戲_第1頁(yè)
JAVA程序設(shè)計(jì)課程設(shè)計(jì)(論文)坦克大戰(zhàn)游戲_第2頁(yè)
JAVA程序設(shè)計(jì)課程設(shè)計(jì)(論文)坦克大戰(zhàn)游戲_第3頁(yè)
JAVA程序設(shè)計(jì)課程設(shè)計(jì)(論文)坦克大戰(zhàn)游戲_第4頁(yè)
JAVA程序設(shè)計(jì)課程設(shè)計(jì)(論文)坦克大戰(zhàn)游戲_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、遼 寧 工 業(yè) 大 學(xué)java程序設(shè)計(jì) 課程設(shè)計(jì)(論文)題目: 坦克大戰(zhàn)游戲 院(系): 專業(yè)班級(jí): 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 教師職稱: 起止時(shí)間: 程序設(shè)計(jì)專題(報(bào)告)任務(wù)及評(píng)語(yǔ)院(系):軟件學(xué)院 教研室:軟件教研室學(xué) 號(hào)學(xué)生姓名專業(yè)班級(jí)程序設(shè)計(jì)(報(bào)告)題目坦克大戰(zhàn)游戲程序設(shè)計(jì)(報(bào)告)任務(wù)程序設(shè)計(jì)專題的任務(wù)與要求:(1)掌握java編程、面向?qū)ο蟮幕A(chǔ)知識(shí)。(2)較熟練地編寫java應(yīng)用程序application。(3)了解java的常用標(biāo)準(zhǔn)類庫(kù)、編程技巧、異常處理。(5)聯(lián)系已學(xué)過的內(nèi)容,鞏固所學(xué)的理論,增強(qiáng)獨(dú)立工作能力。(6)通過設(shè)計(jì)主要使學(xué)生有一個(gè)獨(dú)立編寫程序的過程,對(duì)理論學(xué)

2、習(xí)及動(dòng)手能力都有一個(gè)很大的提高。(7)通過本次設(shè)計(jì),進(jìn)一步培養(yǎng)學(xué)生熱愛專業(yè)的思想,同時(shí)對(duì)本專業(yè)綜合素質(zhì)的提高起一個(gè)積極的推動(dòng)作用。課程設(shè)計(jì)過程中,要嚴(yán)格遵守實(shí)踐環(huán)節(jié)的時(shí)間安排,聽從指導(dǎo)教師的指導(dǎo)。正確地完成上述內(nèi)容,記錄實(shí)習(xí)日記,規(guī)范完整地撰寫出課程設(shè)計(jì)報(bào)告。指導(dǎo)教師評(píng)語(yǔ)及成績(jī)成績(jī): 指導(dǎo)教師簽字: 2009 年 12 月 20 日遼 寧 工 業(yè) 大 學(xué) 課 程 設(shè) 計(jì) 說 明 書(論 文)目 錄第1章 課程設(shè)計(jì)的目的與要求11.1 課程設(shè)計(jì)目的11.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境11.3 課程設(shè)計(jì)的預(yù)備知識(shí)11.4 課程設(shè)計(jì)要求1第2章 課程設(shè)計(jì)內(nèi)容22.1課程設(shè)計(jì)主要內(nèi)容22.2概要設(shè)計(jì)22.2.

3、1自定義類說明22.3詳細(xì)設(shè)計(jì)42.4測(cè)試分析142.4.1程序運(yùn)行情況142.4.2程序異常處理15第3章 課程設(shè)計(jì)總結(jié)16參考資料17第1章 課程設(shè)計(jì)的目的與要求1.1 課程設(shè)計(jì)目的java程序設(shè)計(jì)是計(jì)算機(jī)相關(guān)專業(yè)的必修專業(yè)基礎(chǔ)課程,其實(shí)踐性、應(yīng)用性很強(qiáng)。實(shí)踐教學(xué)環(huán)節(jié)是必不可少的一個(gè)重要環(huán)節(jié)。本課程的程序設(shè)計(jì)專題實(shí)際是計(jì)算機(jī)相關(guān)專業(yè)學(xué)生學(xué)習(xí)完java程序設(shè)計(jì)課程后,進(jìn)行的一次全面的綜合訓(xùn)練,java程序設(shè)計(jì)的設(shè)計(jì)目的是加深對(duì)理論教學(xué)內(nèi)容的理解和掌握,使學(xué)生較系統(tǒng)地掌握程序設(shè)計(jì)及其在網(wǎng)絡(luò)開發(fā)中的廣泛應(yīng)用,基本方法及技巧,為學(xué)生綜合運(yùn)用所學(xué)知識(shí),利用軟件工程為基礎(chǔ)進(jìn)行軟件開發(fā)、并在實(shí)踐應(yīng)用方面

4、打下一定基礎(chǔ)。1.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境硬件要求能運(yùn)行windows 9.x操作系統(tǒng)的微機(jī)系統(tǒng)。java程序設(shè)計(jì)語(yǔ)言及相應(yīng)的集成開發(fā)環(huán)境,j2sdk和eclipse開發(fā)工具。1.3 課程設(shè)計(jì)的預(yù)備知識(shí)熟悉java語(yǔ)言及eclipse開發(fā)工具。1.4 課程設(shè)計(jì)要求按課程設(shè)計(jì)指導(dǎo)書提供的課題,要求學(xué)生在自行完成各個(gè)操作環(huán)節(jié),并能實(shí)現(xiàn)且達(dá)到舉一反三的目的,完成一個(gè)項(xiàng)目解決一類問題。要求學(xué)生能夠全面、深入理解和熟練掌握所學(xué)內(nèi)容,并能夠用其分析、設(shè)計(jì)和解答類似問題;對(duì)此能夠較好地理解和掌握,能夠進(jìn)行簡(jiǎn)單分析和判斷;能編寫出具有良好風(fēng)格的程序;掌握java程序設(shè)計(jì)的基本技能和面向?qū)ο蟮母拍詈头椒ǎ涣私舛嗑€

5、程、安全和網(wǎng)絡(luò)等編程技術(shù)。同時(shí)培養(yǎng)學(xué)生進(jìn)行分析問題、解決問題的能力;培養(yǎng)學(xué)生進(jìn)行設(shè)計(jì)分析、設(shè)計(jì)方法、設(shè)計(jì)操作與測(cè)試、設(shè)計(jì)過程的觀察、理解和歸納能力的提高。第2章 課程設(shè)計(jì)內(nèi)容2.1課程設(shè)計(jì)主要內(nèi)容坦克大戰(zhàn)游戲是在eclipse環(huán)境下編程的游戲,其中包括對(duì)主戰(zhàn)坦克的編寫、坦克的初始位置的編寫、坦克的移動(dòng)方向的編寫、坦克的速度的編寫、坦克的子彈速度的編寫、敵軍的子彈速度的編寫、設(shè)置游戲難度的編寫、子彈的編寫、敵軍坦克的編寫、構(gòu)造函數(shù)的編寫,初始化敵軍坦克的位置和狀態(tài)的編寫、鍵盤控制坦克的移動(dòng)的編寫、發(fā)彈的編寫、判斷是否被擊中的編寫、判斷是否擊中敵軍的編寫等。通過上下左右鍵進(jìn)行對(duì)坦克的移動(dòng),通過空格

6、發(fā)射子彈,其它坦克可以隨機(jī)移動(dòng)。構(gòu)造主窗口中所需要的類,并將坦克加到窗口中,實(shí)現(xiàn)坦克的四個(gè)方向的移動(dòng)并創(chuàng)建炮彈類,并讓屏幕中的坦克能發(fā)射炮彈,讓坦克可以朝對(duì)方開火,并將對(duì)方擊斃。2.2概要設(shè)計(jì)2.2.1自定義類說明(1)hstank2 類是一個(gè)自定義的異常類,其繼承的父類為jframe,沒有具備實(shí)現(xiàn)類的接口。用此類定義了坦克大戰(zhàn)的版本為坦克大戰(zhàn)(版本1.0)。其具體定義如下:public class hstank2 extends jframe hstank2(string title) public static void main(string args) hstank2 h = new

7、hstank2(坦克大戰(zhàn)(版本1.0) ;h.setvisible(true) ;(2)mytank類是用來定義主戰(zhàn)坦克的類,其繼承父類為jpanel,然后定義坦克的初始位置以及坦克的移動(dòng)方向,讓坦克朝四個(gè)方向運(yùn)動(dòng)起來,在類mytank中啟用多線程機(jī)制,讓系統(tǒng)不斷的進(jìn)行重畫。其中定義成員變量具體如下:int tankspeed定義成員變量來表示坦克的速度int tankbullet定義成員變量來表示子彈速度int tankfbullet定義成員變量來表示敵軍的子彈速度int shengming定義成員變量來顯示坦克的生命int nandu定義成員變量來設(shè)置游戲難度int num定義成員變量來表

8、示敵軍坦克數(shù)量 接下來是構(gòu)造函數(shù),初始化敵軍坦克的位置和狀態(tài),其具體情況如下:mytank() for (int i = 0; inum; i+) xfi = (int) (math.random() * 560) ;yfi = (int) (math.random() * 560) ;(3)在mytank類當(dāng)中添加按鍵的方法,鍵盤控制坦克的移動(dòng)和發(fā)彈中,用public公共類創(chuàng)建keypressed方法,當(dāng)中添加x,y,dy,dx等屬性以及常量和構(gòu)造方法,讓主戰(zhàn)坦克打出炮彈。在mytank類當(dāng)中增加對(duì)空格鍵的處理,使每按下空格鍵的時(shí)候,坦克打出一發(fā)炮彈。為了解決坦克停下來也能開火的問題給坦克加

9、一炮筒,根據(jù)炮筒方向和位置設(shè)定子彈的方向和位置并new出來,然后返回。每次move之后根據(jù)mytank的新方向確定炮筒的方向。為了能夠打出多發(fā)炮彈,使用容器填裝多發(fā)炮彈,每當(dāng)抬起空格鍵的時(shí)候就往容器中加入新的炮彈。其中創(chuàng)建keypressed方法如下:public void keypressed(keyevent e) color + ;if(e.getkeycode() = keyevent.vk_up) op = 1 ;y = y - tankspeed ;dy = dy - tankspeed ;(4)成員變量表如下:表1成員變量表名稱成員變量描述tankspeed坦克的速度tankbu

10、llet坦克的子彈速度shengming生命nandu設(shè)置游戲難度num敵軍坦克數(shù)量keypressed鍵盤控制2.3詳細(xì)設(shè)計(jì)編寫坦克大戰(zhàn)的代碼如下:import java.awt.* ; import javax.swing.* ; import java.awt.event.*; import java.util.eventlistener; public class hstank2 extends jframe hstank2(string title) this.settitle(title) ; this.setsize(608 , 630) ; this.setlocation(3

11、00 , 100) ; this.setbackground(color.white) ; mytank mp = new mytank() ; this.add(mp) ; this.addkeylistener(mp) ; new thread(mp).start() ; public static void main(string args) hstank2 h = new hstank2(坦克大戰(zhàn)(版本1.0) ; h.setvisible(true) ; /主戰(zhàn)坦克 class mytank extends jpanel implements keylistener , runnab

12、le int x = 280, y = 280 ;/坦克的初始位置 int op = 1 ;/坦克的移動(dòng)方向 int color = 0 ; int tankspeed = 8 ;/坦克的速度 int tankbullet = 8 ;/坦克的子彈速度 int tankfbullet = 4 ;/敵軍的子彈速度 int shengming = 100 ;/生命 int fenshu = 0 ; int nandu = 5 ; /設(shè)置游戲難度 /子彈 int dx = 295 , dy = 295 ; int dx1 = 295 , dy1 = -10 ; int dx2 = 600 , dy2

13、= 295 ; int dx3 = 295 , dy3 = 600 ; int dx4 = -10 , dy4 = 295 ; /敵軍坦克 int num = 10 ;/敵軍坦克數(shù)量,不能修改 int xf = new intnum ; int yf = new intnum ; int opf = new intnum ; int dxf = new intnum ; int dyf = new intnum ; int dxf1 = new intnum ; int dyf1 = new intnum ; int dxf2 = new intnum ; int dyf2 = new int

14、num ; int dxf3 = new intnum ; int dyf3 = new intnum ; int dxf4 = new intnum ; int dyf4 = new intnum ; /構(gòu)造函數(shù),初始化敵軍坦克的位置和狀態(tài) mytank() for (int i = 0; inum; i+) xfi = (int) (math.random() * 560) ; yfi = (int) (math.random() * 560) ; dxfi = xfi + 15 ; dyfi = yfi + 15 ; for (int i = 0; inum; i+) dxf1i = 2

15、95 ; dyf1i = -10 ; dxf2i = 600 ; dyf2i = 295 ; dxf3i = 295 ; dyf3i = 600 ; dxf4i = -10 ; dyf4i = 295 ; /鍵盤控制坦克的移動(dòng),發(fā)彈 public void keypressed(keyevent e) color + ; if(e.getkeycode() = keyevent.vk_up) op = 1 ; y = y - tankspeed ; dy = dy - tankspeed ; if(y = 560) x = x - tankspeed ; dx = dx - tankspeed

16、 ; if(e.getkeycode() = keyevent.vk_down) op = 3 ; y = y + tankspeed ; dy = dy + tankspeed ; if(y = 560) y = y - tankspeed ; dy = dy - tankspeed ; if(e.getkeycode() = keyevent.vk_left) op = 4 ; x = x - tankspeed ; dx = dx - tankspeed ; if(x = 0) x = x + tankspeed ; dx = dx + tankspeed ; if(e.getkeyco

17、de() = keyevent.vk_space) if(op = 1) dx1 = dx ; dy1 = dy ; if(op = 2) dx2 = dx ; dy2 = dy ; if(op = 3) dx3 = dx ; dy3 = dy ; if(op = 4) dx4 = dx ; dy4 = dy ; this.repaint() ; public void keyreleased(keyevent e) public void run() for (int a = 0; a60000; a+) dy1 = dy1 - tankbullet ; dx2 = dx2 + tankbu

18、llet ; dy3 = dy3 + tankbullet ; dx4 = dx4 - tankbullet ; for (int i = 0; inum; i+) dyf1i = dyf1i - tankfbullet ; dxf2i = dxf2i + tankfbullet ; dyf3i = dyf3i + tankfbullet ; dxf4i = dxf4i - tankfbullet ; /判斷是否被擊中 for (int i = 0; inum; i+) if(dyf1iy +8 & dxf1i-x-10 & dxf1i-xx+2 &dxf2i-10 & dyf2i - y y

19、+2 & dyf3i-10& dxf3i-xx+8 &dxf4i-10 & dyf4i - y 40 ) system.out.println (被4擊中) ; dxf4i = dxfi ; dyf4i = dyfi ; shengming = shengming - nandu ; /判斷是否擊中敵軍 for (int i = 0; inum; i+) if(dy1yfi +8 & dx1-xfi-10 & dx1-xfixfi+2 &dx2-10 & dy2 - yfi yfi+2 & dy3-10& dx3-xfixfi+8 &dx4-10 & dy4 - yfi 40 ) system

20、.out.println (4擊中) ; fenshu = fenshu + 100 ; xfi = (int)(math.random() * 560 ); yfi = (int)(math.random() * 560 ); dxfi = xfi + 15 ; dyfi = yfi + 15 ; public void paint(graphics g) super.paint(g) ; this.setbackground(color.white) ; g.setcolor(color.red) ; g.drawstring(生命: , 10 , 20 ) ; g.fillrect(50

21、 , 10 , shengming * 5 , 10) ; g.drawrect(50 , 10 , 500 , 10) ; g.drawstring(得分: + fenshu , 10 , 40) ; if(op = 1) g.setcolor(color.red) ; g.fillrect(x , y , 40 , 40) ; switch (color % 6) case 0: g.setcolor(color.blue) ; break; case 1: g.setcolor(color.yellow) ; break; case 2: g.setcolor(color.red) ;

22、break; case 3: g.setcolor(color.orange) ; break; case 4: g.setcolor(color.green) ; break; case 5: g.setcolor(color.black) ; break; g.filloval(x - 5 , y - 5 , 10 , 10) ; g.filloval(x - 5 , y + 5 , 10 , 10) ; g.filloval(x - 5 , y + 15 , 10 , 10) ; g.filloval(x - 5 , y + 25 , 10 , 10) ; g.filloval(x -

23、5 , y + 35 , 10 , 10) ; g.filloval(x + 35 , y - 5 , 10 , 10) ; g.filloval(x + 35 , y + 5 , 10 , 10) ; g.filloval(x + 35 , y + 15 , 10 , 10) ; g.filloval(x + 35 , y + 25 , 10 , 10) ; g.filloval(x + 35 , y + 35 , 10 , 10) ;g.setcolor(color.black) ; g.fillrect(x + 15 , y - 20 , 10 , 40) ; switch (color

24、 % 20) case 0: g.setcolor(color.white) ; break; case 1: g.setcolor(color.white) ; break; case 2: g.setcolor(color.white) ; break; case 3: g.setcolor(color.white) ; break; case 4: g.setcolor(color.white) ; break; case 5: g.setcolor(color.white) ; break; case 6: g.setcolor(color.white) ; break; case 7

25、: g.setcolor(color.white) ; break; case 8: g.setcolor(color.white) ; break; case 9: g.setcolor(color.white) ; break; case 10: g.setcolor(color.black) ; break; case 11: g.setcolor(color.black) ; break; case 12: g.setcolor(color.black) ; break; case 13: g.setcolor(color.black) ; break; case 14: g.setc

26、olor(color.black) ; break; case 15: g.setcolor(color.black) ; break; case 16: g.setcolor(color.black) ; break; case 17: g.setcolor(color.black) ; break; case 18: g.setcolor(color.black) ; break; case 19: g.setcolor(color.black) ; break; g.filloval(x + 5 , y + 30 , 10 , 10) ; g.filloval(x + 25 , y +

27、30 , 10 , 10) ; if(op = 2) g.setcolor(color.green) ; g.fillrect(x , y , 40 , 40) ; switch (color % 6) case 0: g.setcolor(color.blue) ; break; case 1: g.setcolor(color.yellow) ; break; case 2: g.setcolor(color.red) ; break; case 3: g.setcolor(color.orange) ; break; case 4: g.setcolor(color.green) ; b

28、reak; case 5: g.setcolor(color.black) ; break; g.filloval(x - 5 , y - 5 , 10 , 10) ; g.filloval(x + 5 , y - 5 , 10 , 10) ; g.filloval(x + 15 , y - 5 , 10 , 10) ; g.filloval(x + 25 , y - 5 , 10 , 10) ; g.filloval(x + 35 , y - 5 , 10 , 10) ; g.filloval(x - 5 , y+35 , 10 , 10) ; g.filloval(x + 5 , y+35

29、 , 10 , 10) ; g.filloval(x + 15 , y+35 , 10 , 10) ; g.filloval(x + 25 , y+35 , 10 , 10) ; g.filloval(x + 35 , y+35 , 10 , 10) ; g.setcolor(color.black) ; g.fillrect(x + 20 , y + 15 , 40 , 10) ; switch (color % 20) case 0: g.setcolor(color.white) ; break; case 1: g.setcolor(color.white) ; break; case

30、 2: g.setcolor(color.white) ; break; case 3: g.setcolor(color.white) ; break; case 4: g.setcolor(color.white) ; break; case 5: g.setcolor(color.white) ; break; case 6: g.setcolor(color.white) ; break; case 7: g.setcolor(color.white) ; break; case 8: g.setcolor(color.white) ; break; case 9: g.setcolo

31、r(color.white) ; break; case 10: g.setcolor(color.black) ; break; case 11: g.setcolor(color.black) ; break; case 12: g.setcolor(color.black) ; break; case 13: g.setcolor(color.black) ; break; case 14: g.setcolor(color.black) ; break; case 15: g.setcolor(color.black) ; break; case 16: g.setcolor(colo

32、r.black) ; break; case 17: g.setcolor(color.black) ; break; case 18: g.setcolor(color.black) ; break; case 19: g.setcolor(color.black) ; break; switch (color % 6) case 0: g.setcolor(color.blue) ; break; case 1: g.setcolor(color.yellow) ; break; case 2: g.setcolor(color.red) ; break; g.filloval(x , y

33、 + 5 , 10 , 10) ; g.filloval(x , y + 25 , 10 , 10) ; if(op = 3) g.setcolor(color.blue) ; g.fillrect(x , y , 40 , 40) ; g.filloval(x - 5 , y - 5 , 10 , 10) ; g.filloval(x - 5 , y + 5 , 10 , 10) ; g.filloval(x - 5 , y + 15 , 10 , 10) ; g.filloval(x - 5 , y + 25 , 10 , 10) ; g.filloval(x - 5 , y + 35 ,

34、 10 , 10) ; g.filloval(x + 35 , y - 5 , 10 , 10) ; g.filloval(x + 35 , y + 5 , 10 , 10) ; g.filloval(x + 35 , y + 15 , 10 , 10) ; g.filloval(x + 35 , y + 25 , 10 , 10) ; g.filloval(x + 35 , y + 35 , 10 , 10) ; g.setcolor(color.black) ; g.fillrect(x + 15 , y + 20 , 10 , 40) ; 2.4測(cè)試分析2.4.1程序運(yùn)行情況編譯完相關(guān)的

35、代碼后,在eclipse中運(yùn)行,會(huì)顯示出如下效果圖,通過上下左右鍵來移動(dòng)坦克并躲避子彈,通過按空格來發(fā)射子彈,其中還可以顯示所剩的生命值,具體效果如下圖顯示:圖2.1坦克大戰(zhàn)運(yùn)行時(shí)效果圖如下是此游戲結(jié)束時(shí)的效果圖:圖2.2坦克大戰(zhàn)結(jié)束時(shí)效果圖2.5.2程序異常處理此程序不涉及異常處理。第3章 課程設(shè)計(jì)總結(jié) 在internet流行的今天,對(duì)傳統(tǒng)的計(jì)算模型提出了新的挑戰(zhàn)。由于java語(yǔ)言具有能獨(dú)立于平臺(tái)而運(yùn)行、面向?qū)ο?、可?duì)動(dòng)態(tài)畫面進(jìn)行設(shè)計(jì)與操作、堅(jiān)固性等特點(diǎn),又具有多線程、內(nèi)置校驗(yàn)器用來防止病毒入侵等功能,所以用來在internet上研制與開發(fā)軟件時(shí),特別受到用戶的歡迎。現(xiàn)在,許許多多的原c+程序員已經(jīng)轉(zhuǎn)向了java編程,同時(shí)java程序的應(yīng)用也由簡(jiǎn)單的applet(一種小應(yīng)用程序)逐步向大型

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。