![Java實訓報告greenfoot游戲制作_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/1ecf09dd-ad49-4900-9c31-e3a90f909eba/1ecf09dd-ad49-4900-9c31-e3a90f909eba1.gif)
![Java實訓報告greenfoot游戲制作_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/1ecf09dd-ad49-4900-9c31-e3a90f909eba/1ecf09dd-ad49-4900-9c31-e3a90f909eba2.gif)
![Java實訓報告greenfoot游戲制作_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/1ecf09dd-ad49-4900-9c31-e3a90f909eba/1ecf09dd-ad49-4900-9c31-e3a90f909eba3.gif)
![Java實訓報告greenfoot游戲制作_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/1ecf09dd-ad49-4900-9c31-e3a90f909eba/1ecf09dd-ad49-4900-9c31-e3a90f909eba4.gif)
![Java實訓報告greenfoot游戲制作_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/12/1ecf09dd-ad49-4900-9c31-e3a90f909eba/1ecf09dd-ad49-4900-9c31-e3a90f909eba5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、J a v a 實 訓 報 告 Greenfoot 游戲程序設計 班級:微應 1211 成員:胡文亞 吳桐 安徽水利水電職業(yè)技術學院第一部分1.1 設計目的 21.2 設計要求 21.3 實現(xiàn)功能 21.4 界面設計 3第二部分2.1 開發(fā)平臺 32.2 環(huán)境搭配 4第三部分3.1Space 代碼 43.2Obstacle 代碼 63.3SmoothMover 代碼 73.4Body 代碼 11第四部分 心得體會 第一部分1.1 設計目的Greenfoot是針對那些想讓自己熟悉如何使用 JAVA的人而設計的,是一個功能完整的開發(fā)環(huán)境,可以使用Java方便地編寫游戲和進行模擬。我們設計的是一款簡
2、單易操作的 游戲,我們希望能通過自己的所學知識把它分析開來,真正的了解它的本質(zhì)。雖然我們的 編程能力不是很強,但是我們組有信心,通過本學期對JAVA語言程序設計的學習,經(jīng)過老師對greenfoot軟件的介紹及實際舉例、耐心的講解,我們可以試著用 greenfoot來制作簡單的小游戲了,雖然不嫻熟還有待提高,但是一些技術含量較低的小游戲還是 很容易讓我們掌握的。此次游戲程序設計的目的,主要是通過gree nfoot來制作游戲來更好的掌握java語言。通過gree nfoot這個平臺,熟習 gree nfoot在制作游戲方面所需要的技巧,將 自己的游戲盡可能多的運用所學到的技術,并且將在平時jav
3、a課程上面學到的知識付諸于實踐,并從實踐和實際的項目中提高自己的編程能力。找出自己的不足之處進行 彌補。1.2設計要求:這次實訓任務的課程設計的要求是選擇gree nfoot軟件作為我們游戲編程的平臺。因為我們平時學習的就是java語言,而greenfoot便是一個以Java語言為基礎的游戲開發(fā)平臺,所以在編程的過程中能夠提高效率,也讓我對java語言和green foot之間銜接的關系有了更深了解,同樣,也讓我更加熟習了這個游戲開發(fā)平 臺的環(huán)境。1.3實現(xiàn)功能此款瘋狂之音游戲的設計思路就是解放雙手的彈奏,通過向空白處隨意放入不同顏色、不同大小的球,當球下落和上升時觸碰到黃色板塊會觸發(fā)出不同的
4、音調(diào), 當多個聲音同時出現(xiàn)時能夠準確的分辨出來。就成為了一首自己創(chuàng)作的優(yōu)美神曲,并 給大家?guī)韸蕵?,為聽者增加不少樂趣?.4界面設計第二部分2.1開發(fā)平臺greenfoot是一個以Java語言為基礎的游戲開發(fā)平臺,編程的過程中能夠提高效率,而且對象的可視化和對象的交互性比較清晰。2.2環(huán)境配置1、 計算機的環(huán)境變量需要設置,計算機需要安裝JDK版本為1.6。由于greenfoot 需要綁定JD&2、 greenfoot的安裝,需要到官網(wǎng)上下載正確的 greenfoot版本,安裝后需 要測試時候可以使用,是否與 JDK綁定。第三部分3.1Space 代碼importgree nfoot.*;/
5、(World,Actor,Gree nfootlmage,Gree nfoota ndMouse Info) importpublicclassSpaceexte ndsWorldprivateStri ngsou ndFiles=2c,2d,2e,2f,2g,2a,2b,3c,3d,3e,3 f,3g,3a,3b;十四個聲音檔/*對于類空間對象的構造函數(shù)。*/ publicSpace()super(960,620,1);createObstacles();ran domBodies (5);/初始球的數(shù)量*創(chuàng)建一個排在我們的世界中的障礙。*/publicvoidcreateObstacles
6、()in ti=0;while(i0)in tsize=20+Gree nfoot.getRa ndomNumber(30);從一組數(shù)據(jù)中隨機取出一定數(shù)量的隨機數(shù)doublemass=size*7.0;in tdirect ion=Gree nfoot.getRa ndomNumber(360);方向doublespeed=Gree nfoot.getRa ndomNumber(150)/100.0;速度in tx=Gree nfoot.getRa ndomNumber(getWidth();取寬度in ty=Gree nfoot.getRa ndomNumber(getHeight();取長
7、度in tr=Gree nfoot.getRa ndomNumber(255);in tg=Gree nfoot.getRa ndomNumber(255);in tb=Gree nfoot.getRa ndomNumber(255);addObject( newBody(size,mass, newVector(directio n,speed), newColor(r,g,b),x,y);nu mber-;3.2Obstacle 代碼importgree nfoot.*;/(World,Actor,Gree nfootlmage,Gree nfoota ndMouse Info) publ
8、icclassObstacleexte ndsActorprivateStri ngso und;privateboolea ntouched=false;*創(chuàng)建一個具有相關的聲音文件的一個障礙。publicObstacle(Stri ngso un dFile) soun d=so un dFile;/聲音檔*每一次循環(huán),檢查是否被擊中。如果我們發(fā)揮我們的聲音。*/publicvoidact()Actorbody=get Oneln tersecti ngObject(Body.class);if(touched&body=null)/不用觸碰touched=false;setlmage(b
9、lock.p ng);elseif(!touched&body!=null)暫時的觸碰touched=true;setlmage(block-light.p ng);Gree nfoot.playSo un d(so un d);/播放聲音publicvoidplaySo un d()Gree nfoot.playSo un d(so un d);3.3SmoothMover 代碼importgree nfoot.*;/(World,Actor,Gree nfootlmage,a ndGree nfoot)/*它還保持當一個變化的一個Actor,保持精確的位置(使用雙打的坐標而不是整數(shù))前的運
10、動矢量的運動形式。*/publicabstractclassSmoothMoverextendsActor privateVectormovement;privatedoubleexactX;privatedoubleexactY;publicSmoothMover() this(newVector();/*創(chuàng)造新事物以給定的速度初始化的 */ publicSmoothMover(Vectormovement) this.movement=movement;/*在當前的運動方向移動 */ publicvoidmove() exactX=exactX+movement.getX();exactY
11、=exactY+movement.getY();super.setLocation(int)exactX,(int)exactY);/* * 設置位置使用精確坐標 (double) */ publicvoidsetLocation(doublex,doubley) exactX=x;exactY=y;super.setLocation(int)x,(int)y);/*設置的位置。重新定義標準的 Greenfoot 方法來確定*確切的坐標更新同步*/ publicvoidsetLocation(intx,inty)exactX=x;exactY=y;super.setLocation(x,y);
12、返回確切的 x*/ publicdoublegetExactX() returnexactX;返回確切的 y*Returntheexactyco-ordinate(asadouble).*/ publicdoublegetExactY() returnexactY;/* 修改當前的運動通過添加一個新的向量到現(xiàn)有的運動 */ publicvoidaddForce(Vectorforce) movement.add(force);/*加速這種原動力的速度給定的因素。 ( 因子小于 1 *減速 ) 。方向保持不變。*/ publicvoidaccelerate(doublefactor)moveme
13、nt.scale(factor);if(moveme nt.getLe ngth()0.15) moveme nt.setNeutral();/*返回這個球的速度*/publicdoublegetSpeed() returnmoveme nt.getLe ngth(); /*返回該對象的當前運動*/publicVectorgetMoveme nt() retur nm oveme nt;3.3Body 代碼importgree nfoot.*;/(World,Actor,Gree nfootlmage,Gree nfoota ndMouse Info)importimport* Body”是任
14、何類型的對象在空間,有一個大的,或其他任何漂浮在周圍空間*/publicclassBodyexte ndsSmoothMover黃色的球privatestaticfi naldoubleGRAVITY=7.8;privatestaticfi nalColordefaultColor= newColor(255,216,0);privatedoublemass;/*.構造一個球是默認大小,方向,運動,和顏色*/ publicBody()this(20,300, newVector(0,0.0),defaultColor);/*構造一個球是默認大小,方向,運動,和顏色*/publicBody(i
15、ntsize,doublemass,Vectormoveme nt,Colorcolor)this.mass=mass;addForce(moveme nt);Gree nfootlmageimage=n ewGree nfootlmage(size,size);image.setColor(color);image.fillOval(0,0,size-1,size-1);setImage(image);*行為。那就是將引力部份從所有其他體的周圍,然后移動。*/publicvoidact()applyForces();move();boun ceAtEdge();/*檢查是否到達背景的邊緣,如
16、果是就反彈*/privatevoidbo un ceAtEdge() if(getX()=0|getX()=getWorld().getWidth()-1) setLocati on (double)getX(),(double)getY(); getMoveme nt().revertHoriz on tal();accelerate(0.9);elseif(getY()=0|getY()=getWorld().getHeight()-1) setLocation(double)getX(),(double)getY(); getMovement().revertVertical();acc
17、elerate(0.9);/*應用重力的力量從這個宇宙中其他天體*/ privatevoidapplyForces()Listbodies=(List)getWorld().getObjects(Body.class); for(Bodybody:bodies) if(body!=this)applyGravity(body);/ 確保不會太快 : 如果當前速度非???,減速 . if(getSpeed()7) accelerate(0.9);/ 加速因子 1 實際上減慢 /* 適用于一個給定的球的重力*/privatevoidapplyGravity(Bodyother) doubledx=
18、other.getExactX()-this.getExactX(); doubledy=other.getExactY()-this.getExactY();Vectorforce=newVector(dx,dy); doubledistance=Math.sqrt(dx*dx+dy*dy);doublestrength=GRAVITY*this.mass*other.mass/(distance*distance); doubleacceleration=strength/this.mass;force.setLength(acceleration);addForce(force);/*/ 適用于一個給定的身體的重力這一套*/publicdoublegetMass()returnmass;第四部分心得體會經(jīng)過一個星期對 greenfoot 的學習,我們基本掌握了 greenfoot 的比較基礎的編 程方法。因為 greenfoot 是以 java 語言為基礎的游戲制作平臺,它的語言標準和 java 的沒有什么本質(zhì)的不同,所以通過以往對 java 的學習和認識,真正的操作起來,并 不是很難著手。只要上課認真聽老師細心的講解,我們覺得 greenfoot 這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國藥用香精行業(yè)市場前景預測及投資戰(zhàn)略研究報告
- 2024-2030年中國稀土材料行業(yè)市場發(fā)展監(jiān)測及投資方向研究報告
- 中國鋸材行業(yè)市場深度研究及投資規(guī)劃建議報告
- 2025年中國瘧疾治療藥行業(yè)發(fā)展運行現(xiàn)狀及投資戰(zhàn)略規(guī)劃報告
- 2025-2030年口腔內(nèi)窺鏡手術系統(tǒng)行業(yè)跨境出海戰(zhàn)略研究報告
- 2025-2030年堅果美容護膚產(chǎn)品企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 鋁合金鋅合金產(chǎn)品鑄造模項目節(jié)能評估報告(節(jié)能專)
- 2025-2030年壇口封口效率提升方案行業(yè)跨境出海戰(zhàn)略研究報告
- 環(huán)保型工業(yè)涂裝涂料可行性研究報告建議書
- 2025-2030年堅果三明治行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 我長大以后【經(jīng)典繪本】
- 2023學年完整公開課版閘閥
- 中小學德育工作指南考核試題及答案
- 國家電網(wǎng)有限公司電網(wǎng)數(shù)字化項目工作量度量規(guī)范應用指南(2020版)
- GB/T 3077-2015合金結構鋼
- TTAAA 002-2022 天津市事故機動車貶損價值評估標準
- GB/T 13024-2003箱紙板
- 幕墻工程項目管理方案手冊施工管理方案標準化手冊
- 萜類天然藥物化學
- 妊娠合并急性胰腺炎課件
評論
0/150
提交評論