九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

Java俄羅斯方塊實(shí)現(xiàn)步驟.ppt

  • 資源ID:13189693       資源大?。?span id="24d9guoke414" class="font-tahoma">207.96KB        全文頁數(shù):25頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

Java俄羅斯方塊實(shí)現(xiàn)步驟.ppt

項(xiàng)目實(shí)戰(zhàn)俄羅斯方塊,主講:賈宗維,程序演示,游戲01_功能演示與說明游戲02_面向?qū)ο笤O(shè)計(jì)游戲03_使用API類組裝游戲游戲04_編寫各個(gè)類主體框架游戲05_編寫Controler類實(shí)現(xiàn)事件監(jiān)聽游戲06_編寫類測(cè)試代碼游戲07_圖形設(shè)計(jì)與創(chuàng)建游戲08_圖形移動(dòng)與顯示游戲09_處理游戲邊界問題游戲10_障礙物生成與顯示游戲11_消除滿行的障礙物游戲12_增加游戲結(jié)束游戲13_定時(shí)下落,編寫各個(gè)類主體框架-Shape類,publicclassShape/privateShapeListenerlistener;publicvoidmoveLeft()System.out.println("shapesmoveLeft");publicvoidmoveRight()System.out.println("shapesmoveright");publicvoidmoveDown()System.out.println("shapesmoveDown");publicvoidrotate()System.out.println("shapesrotate");publicvoiddrawMe()System.out.println("shapesdrawme");,privateclassShapeDriverimplementsRunnablepublicvoidrun()/TODOAuto-generatedmethodstubwhile(true)moveDown();/listener.shapeMoveDown(Shape.this);tryThread.sleep(1000);catch(InterruptedExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();,編寫各個(gè)類主體框架-ShapeFactory類,publicclassShapeFactorypublicShapegetShape(ShapeListenerlistener)System.out.println("ShapeFactorysgetShape");Shapeshape=newShape();returnshape;,編寫各個(gè)類主體框架-Ground類,packagecn.tetris.entities;publicclassGroundpublicvoidaccept()System.out.println("Groundsaccept");publicvoiddrawMe()System.out.println("GroundsdrawMe");,編寫各個(gè)類主體框架-GamePanel類,publicclassGamePanelextendsJPanelprivateGroundground;privateShapeshape;publicvoiddisplay(Groundground,Shapeshape)System.out.println("GamePanelsdisplay");this.ground=ground;this.shape=shape;this.repaint();OverrideprotectedvoidpaintComponent(Graphicsarg0)/TODOAuto-generatedmethodstub/重新顯示if(ground!=null,編寫各個(gè)類主體框架-Controller類,publicclassControllerextendsKeyAdapterprivateGroundground;privateShapeshape;privateShapeFactoryshapeFactory;privateGamePanelgamePanel;publicvoidkeyPressed(KeyEvente)switch(e.getKeyCode()caseKeyEvent.VK_UP:shape.rotate();break;caseKeyEvent.VK_LEFT:shape.moveLeft();break;caseKeyEvent.VK_RIGHT:shape.moveRight();break;caseKeyEvent.VK_DOWN:shape.moveDown();break;gamePanel.display(ground,shape);,編寫各個(gè)類主體框架-ShapeListener接口,publicinterfaceShapeListenervoidshapeMoveDown(Shapeshape);,Shape類增加監(jiān)聽器對(duì)象及下落后調(diào)用,publicclassShapeprivateShapeListenerlistener;publicvoidmoveLeft()System.out.println("shapesmoveLeft");publicvoidmoveRight()System.out.println("shapesmoveright");publicvoidmoveDown()System.out.println("shapesmoveDown");publicvoidrotate()System.out.println("shapesrotate");publicvoiddrawMe()System.out.println("shapesdrawme");,privateclassShapeDriverimplementsRunnablepublicvoidrun()/TODOAuto-generatedmethodstubwhile(true)moveDown();listener.shapeMoveDown(Shape.this);tryThread.sleep(1000);catch(InterruptedExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();,Shape類中增加注冊(cè)監(jiān)聽器的方法,publicvoidaddShapeListener(ShapeListenerl)if(l!=null)this.listener=l;,Shape構(gòu)造方法中啟動(dòng)下落線程,publicShape()newThread(newShapeDriver().start();,Controller類實(shí)現(xiàn)ShapeListener接口,publicclassControllerextendsKeyAdapterimplementsShapeListenerpublicvoidshapeMoveDown(Shapeshape)/TODOAuto-generatedmethodstubgamePanel.display(ground,shape);,生產(chǎn)圖形時(shí)同時(shí)注冊(cè)監(jiān)聽器,publicclassShapeFactorypublicShapegetShape(ShapeListenerlistener)System.out.println("ShapeFactorysgetShape");Shapeshape=newShape();shape.addShapeListener(listener);returnshape;,GamePanel類設(shè)置大小,publicGamePanel()this.setSize(300,300);,Controller類中增加開始新游戲方法,publicvoidnewGame()shape=shapeFactory.getShape(this);,Controller類中如何接收外部控制的對(duì)象,publicController(ShapeFactoryshapeFactory,Groundground,GamePanelgamePanel)this.shapeFactory=shapeFactory;this.ground=ground;this.gamePanel=gamePanel;,測(cè)試類Game,publicclassGamepublicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubShapeFactoryshapeFactory=newShapeFactory();Groundground=newGround();GamePanelgamePanel=newGamePanel();Controllercontroller=newController(shapeFactory,ground,gamePanel);JFrameframe=newJFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(gamePanel.getSize().width+10,gamePanel.getSize().height+35);frame.add(gamePanel);gamePanel.addKeyListener(controller);frame.setVisible(true);controller.newGame();,程序步驟,游戲01_功能演示與說明游戲02_面向?qū)ο笤O(shè)計(jì)游戲03_使用API類組裝游戲游戲04_編寫各個(gè)類主體框架游戲05_編寫Controler類實(shí)現(xiàn)事件監(jiān)聽游戲06_編寫類測(cè)試代碼游戲07_圖形設(shè)計(jì)與創(chuàng)建游戲08_圖形移動(dòng)與顯示游戲09_處理游戲邊界問題游戲10_障礙物生成與顯示游戲11_消除滿行的障礙物游戲12_增加游戲結(jié)束游戲13_定時(shí)下落,Shape類,增加圖形的描述,/二維變量用于保存圖形的所有狀態(tài)privateintbody;/用于保存圖形當(dāng)前的狀態(tài)privateintstatus;/設(shè)置狀態(tài)的方法publicvoidsetBody(intbody)this.body=body;/設(shè)置當(dāng)前是第幾種狀態(tài)publicvoidsetStatus(intstatus)this.status=status;,ShapeFactory類增加生產(chǎn)各種圖形,/三維數(shù)組用于表示一種圖形的多種形狀privateintshapes=newint1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0;,publicShape/生產(chǎn)一個(gè)隨機(jī)數(shù),用于表示圖形的狀態(tài)inttype=newRandom().nextInt(shapes.length);/設(shè)置圖形有幾種狀態(tài)shape.setBody(shapestype);/設(shè)置默認(rèn)狀態(tài)shape.setStatus(0);returnshape;,Shape類中增加圖形的位置信息,/表示圖形距離左側(cè)的距離privateintleft;/表示圖形距離上邊界的距離privateinttop;publicvoidmoveLeft()left-;publicvoidmoveRight()left+;publicvoidmoveDown()top+;publicvoidrotate()/顯示下一個(gè)狀態(tài),但得保證狀態(tài)值不超過4,所以需處理status=(status+1)%body.length;,Shape類中增加圖形的繪制方法,publicvoiddrawMe(Graphicsg)System.out.println("shapesdrawme");g.setColor(Color.RED);/循環(huán)訪問代表方正的數(shù)組for(intx=0;x<4;x+)for(inty=0;y<4;y+)if(getFlagByPoint(x,y)g.fill3DRect(left+x)*Global.CELL_SIZE,(top+y)*Global.CELL_SIZE,Global.CELL_SIZE,Global.CELL_SIZE,true);/獲取方正中標(biāo)志是1還是0,1表示要繪圖0表示不繪圖privatebooleangetFlagByPoint(intx,inty)returnbodystatusy*4+x=1;,游戲常量的存放Glaobal,publicclassGlobal/表示每個(gè)方格的像素值publicstaticfinalintCELL_SIZE=20;/表示圖形面板有多少個(gè)格子寬和高publicstaticfinalintWIDTH=15;publicstaticfinalintHEIGHT=15;,測(cè)試游戲,下落方塊出現(xiàn)拖影,在GamePanel類的paintComponent方法中增加如下代碼:在填充一個(gè)與背景同色的區(qū)域g.setColor(newColor(0 xcfcfcf);g.fillRect(0,0,Global.CELL_SIZE*Global.WIDTH,Global.CELL_SIZE*Global.HEIGHT);/填充一個(gè)灰色顯示區(qū)域,避免圖形拖影修改此處的同時(shí)還需修改Shape的drawme方法中設(shè)置圖形的顏色,以及給frame也注冊(cè)監(jiān)聽器。,圖形如何避免移出邊界,publicbooleanisMoveable(Shapeshape,intaction)/得到圖像當(dāng)前的位置信息intleft=shape.getLeft();inttop=shape.getTop();/根據(jù)圖形的動(dòng)作,得出圖形最新的位置信息switch(action)caseShape.LEFT:left-;break;caseShape.RIGHT:left+;break;caseShape.DOWN:top+;break;,/依次取出圖形中的每一個(gè)點(diǎn),判斷是否超出顯示區(qū)域for(intx=0;x=Global.HEIGHT|left+x=Global.WIDTH)returnfalse;returntrue;,

注意事項(xiàng)

本文(Java俄羅斯方塊實(shí)現(xiàn)步驟.ppt)為本站會(huì)員(za****8)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!