




已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Android游戲框架AndEngine使用入門 一、如何使用AndEngine: 1.1 AndEngine的基本運行原理: 解讀AndEngine源碼后我們可以發(fā)現(xiàn),AndEngine除了采取低耦合、高內(nèi)聚的框架策略細(xì)分引擎模塊,使用OpenGLES進(jìn)行游戲渲染之外;該引擎還以雙線程方式分別驅(qū)動繪圖與事務(wù)更新,事實上,它將游戲畫面和游戲業(yè)務(wù)分為兩組邏輯,并行跑在同級的互斥線程當(dāng)中。 具體地說,其繪圖線程位于AndEngine提供的GLSurfaceView內(nèi)部類GLThread(在AndEngine的org.anddev.andengine.opengl.view包下,非Android默認(rèn)的GLSurfaceView),并通過GLSurfaceView子類,即AndEngine提供的RenderSurfaceView類調(diào)用重載的onDrawFrame函數(shù)加以渲染控制;而業(yè)務(wù)線程在Engine類的內(nèi)部類UpdateThread中,AndEngine將始終以while(true)這樣的死循環(huán)方式快速執(zhí)行其中的onTickUpdate函數(shù),所有AndEngine提供的游戲業(yè)務(wù)最終都會由此函數(shù)調(diào)用及執(zhí)行,比如AndEngine常用的registerUpdateHandler方法就是向它提交數(shù)據(jù)。 當(dāng)AndEngine進(jìn)行游戲繪圖時,游戲業(yè)務(wù)線程會通過wait方式鎖定,而當(dāng)游戲業(yè)務(wù)處理時,也會以同樣的手段鎖定繪圖線程,二者間具體交互關(guān)系由Engine類中的State子類控制,以此保證游戲畫面與游戲業(yè)務(wù)同步。 另外,或許是考慮到持續(xù)雙線程運行電量消耗較大的緣故,AndEngine默認(rèn)情況下要求用戶啟動PowerManager進(jìn)行電源管理,故此需要權(quán)限支持,否則初始化時Log會提示缺少相關(guān)配置,并建議你在AndroidManifest.xml中添加權(quán)限。PS:無此權(quán)限不影響運行,只會在Log有警告信息,并且耗電較快。1.2 AndEngine的基本運行流程: 由于AndEngine是專供Android使用的2D游戲引擎,所以作為啟動類的Activity肯定必不可少,而AndEngine也理所應(yīng)當(dāng)?shù)奶峁┙o我們這樣一個Activity,那就是BaseGameActivity。一個標(biāo)準(zhǔn)的AndEngine應(yīng)用,至少應(yīng)該對BaseGameActivity做如下繼承:view plaincopy to clipboardprint?1. publicclassMainextendsBaseGameActivity2. publicvoidonLoadComplete()3. 4. 5. publicEngineonLoadEngine()6. returnnull;7. 8. publicvoidonLoadResources()9. 10. 11. publicSceneonLoadScene()12. returnnull;13. 14. 其中四個必須被重載函數(shù)的啟動順序如下: onLoadEngine-onLoadResources-onLoadScene-onLoadComplete 具體的講,AndEngine會首先加載Engine類實例通知系統(tǒng)游戲引擎的基本運行方式,而后加載游戲資源,其次加載游戲場景實例,最后通過onLoadComplete通知用戶加載完畢并于此進(jìn)行善后工作。 此外,由于BaseGameActivity類重載了父類Activity的onResume與onPause函數(shù)以保證其自身的正常運行,所以不建議在繼承BaseGameActivity時再次重載上述函數(shù)(重載的話不要忘記super調(diào)用),推薦直接重載AndEngine提供的onGamePaused和onGameResumed實現(xiàn)同等功能(最近把LGame也加上了這樣的兩個函數(shù),并且禁止了LGameAndroid2DActivity子類重載onResume與onPause,務(wù)求減少用戶錯誤重載導(dǎo)致的程序異常)。1.3 AndEngine的基本運行方式: 上文介紹了AndEngine的基本運行機(jī)制與運行流程,然而僅僅這樣AndEngine還是無法實際運行,因為Engine與Scene都沒有獲得具體實現(xiàn)。假如我們想要在屏幕上顯示出當(dāng)前應(yīng)用FPS數(shù),至少需要做如下改動,才能滿足一個最為基本的AndEngine應(yīng)用:view plaincopy to clipboardprint?1. publicclassMainextendsBaseGameActivity2. privatestaticfinalintCAMERA_WIDTH=320;3. privatestaticfinalintCAMERA_HEIGHT=480;4. privateCameraandCamera;5. privateTexturemyFontTexture;6. privateFontmyFont;7. publicvoidonLoadComplete()8. 9. publicEngineonLoadEngine()10. /構(gòu)建攝像機(jī) 11. this.andCamera=newCamera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT);12. /構(gòu)建Engine,全屏顯示,手機(jī)方向為豎屏,按比例拉伸 13. returnnewEngine(newEngineOptions(true,ScreenOrientation.PORTRAIT,14. newRatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT),15. this.andCamera);16. 17. publicvoidonLoadResources()18. /構(gòu)建一個紋理用以顯示文字 19. this.myFontTexture=newTexture(256,256,TextureOptions.DEFAULT);20. /構(gòu)建字體 21. this.myFont=newFont(this.myFontTexture,Typeface.create(22. Typeface.DEFAULT,Typeface.BOLD),32,true,Color.WHITE);23. /注入相關(guān)紋理及字體 24. this.mEngine.getTextureManager().loadTexture(this.myFontTexture);25. this.mEngine.getFontManager().loadFont(this.myFont);26. 27. publicSceneonLoadScene()28. /構(gòu)建場景,允許的最大Layer數(shù)量為1 29. finalScenescene=newScene(1);30. /使用可以變更內(nèi)容的ChangeableText顯示FPS(它的父類Text不允許改變顯示內(nèi)容),位置在15,5, 31. /字體為myFont中所規(guī)定的,最多允許顯示5個字符(設(shè)置能顯示幾個字符,實際就能顯示幾個, 32. /AndEngine不能自動擴(kuò)充,不填以初始化時輸入的字符數(shù)計算) 33. finalChangeableTexttext=newChangeableText(5,5,this.myFont,34. 0.0,5);35. /注冊FPS監(jiān)聽 36. this.mEngine.registerUpdateHandler(newFPSLogger()37. protectedvoidonHandleAverageDurationElapsed(finalfloatpFPS)38. super.onHandleAverageDurationElapsed(pFPS);39. /傳遞內(nèi)容到ChangeableText 40. text.setText(+pFPS);41. 42. );43. /將ChangeableText注入場景 44. scene.attachChild(text);45. /構(gòu)建場景,可容納圖層數(shù)為1 46. returnscene;47. 48. 運行效果如下圖所示: 另外,事實上BaseGameActivity并非AndEngine提供的唯一Activity,其UI包下尚有以SplashScene場景作為特效啟動的BaseSplashActivity類,以及通過重載getLayoutID與getRenderSurfaceViewID這兩個抽象函數(shù),調(diào)用指定布局與視圖的LayoutGameActivity類。不過除了上述特點,它們與BaseGameActivity就再無區(qū)別了。二、如何使用AndEngine中的常用功能: 事實上,AndEngine中組件顆粒都非常細(xì)小,幾乎每個由AndEngine提供的功能都會有一個對應(yīng)的類存在;個人認(rèn)為,AndEngine將許多很小很小的功能,做成了太多太多的模塊,似乎有些封裝過度。 比如僅Engine就衍生出DoubleSceneSplitScreenEngine(可以同時顯示并緩存兩個Scene的Engine,通過setFirstScene以及setSecondScene進(jìn)行雙屏切換,即分屏用Engine)、SingleSceneSplitScreenEngine(與DoubleSceneSplitScreenEngine類似,但一次只能顯示一個畫面)、LimitedFPSEngine(可限制FPS速度的Engine,重載了標(biāo)準(zhǔn)Engine的onUpdate函數(shù),減速方式為常見的線程延遲)、FixedStepEngine(與LimitedFPSEngine近似,重載了標(biāo)準(zhǔn)Engine的onUpdate函數(shù),但是它通過反復(fù)while方式最大限度矯正AndEngine內(nèi)部計時器的累加數(shù)值,以求每次線程主循環(huán)的幀數(shù)都與預(yù)想幀數(shù)相等)等許多子類(目前細(xì)分還在不斷增加)。 其實,這些功能完全可以進(jìn)行統(tǒng)一實現(xiàn),而不必占據(jù)那么的應(yīng)用空間與用戶記憶細(xì)胞(PS:有日本人(疑似,服務(wù)器在東京)做過一個叫e3roid的同類項目,雖然結(jié)構(gòu)異常近似AndEngine,個人認(rèn)為具體實現(xiàn)卻比AndEngine更合理,項目在:,有時間小弟會單獨介紹一下)。 當(dāng)然,這篇文章是對AndEngine的使用入門,而并非對AndEngine的“抱怨入門”,所以下面開始,小弟將對AndEngine的主要功能進(jìn)行初步講解。2.1 AndEngine的IUpdateHandler接口: IUpdateHandler類是AndEngine引擎中使用頻率非常之高的組件之一,其本身是一個接口,內(nèi)部有onUpdate以及reset兩個函數(shù)等待實現(xiàn),幾乎所有AndEngine應(yīng)用中都必然會看到它的身影,它也是AndEngine添加具體業(yè)務(wù)到游戲業(yè)務(wù)線程中的主要方法之一。 具體的講,所有通過AndEngine中registerUpdateHandler函數(shù)注冊的IUpdateHandler,都會被保存到一個叫做UpdateHandlerList的IUpdateHandler接口集合當(dāng)中。雖然UpdateHandlerList本身也是一個IUpdateHandler接口的實現(xiàn),然而它的地位卻比較特殊,基本只存在于Engine及Scene類中,并只供Engine類中的onTickUpdate函數(shù)調(diào)用(PS:Scene類中雖有獨立的UpdateHandlerList,但事實上它依舊只被Engine中的onTickUpdate執(zhí)行)。每當(dāng)AndEngine業(yè)務(wù)線程循環(huán)onTickUpdate這個Engine內(nèi)部方法時,都會調(diào)用UpdateHandlerList中存在的所有IUpdateHandler,直到注銷相關(guān)的IUpdateHandler實例為止。 另外,與UpdateHandlerList集合類作用類似的還有RunnableHandler類,該類同樣是IUpdateHandler的具體實現(xiàn),它的作用在于保存并執(zhí)行一次標(biāo)準(zhǔn)Runnable(每次業(yè)務(wù)循環(huán)后都會清空RunnableHandler的內(nèi)部數(shù)據(jù))。該類在AndEngine業(yè)務(wù)線程中的執(zhí)行時機(jī)略早于UpdateHandlerList,我們可以通過RunnableHandler類中的postRunnable函數(shù),或Engine類中的runOnUpdateThread函數(shù)添加Runnable到該集合(runOnUpdateThread函數(shù)為postRunnable函數(shù)的調(diào)用封裝,Engine類及相關(guān)子類,BaseGameActivity類及相關(guān)子類中可見)。2.2 AndEngine的Async方法: 默認(rèn)情況下,AndEngine的資源加載會在構(gòu)建Engine之后,調(diào)用onLoadResources函數(shù)時進(jìn)行同步加載。但如果一次性加載資源太多時,便可能會面臨一個問題,那就是Android系統(tǒng)將自動關(guān)閉長期無響應(yīng)的UI。所以一旦采取同步執(zhí)行的加載策略,數(shù)據(jù)量過大時就有可能將我們的APK卡死。因此,這就需要異步加載策略來解決問題,而AndEngine也確實提供了我們這樣的異步加載方式。 具體的講,AndEngine對Android系統(tǒng)自帶的AsyncTask類進(jìn)行了適當(dāng)封裝(具體封裝在BaseActivity類中,該類為BaseGameActivity的父類,AndEngine由此類開始實際繼承Activity,但BaseGameActivity的主要功能并不在此類),只要通過doAsync或者doProgressAsync函數(shù)就可以調(diào)用,實現(xiàn)代碼如下所示:view plaincopy to clipboardprint?1. publicclassMainextendsBaseGameActivity2. privatestaticfinalintCAMERA_WIDTH=320;3. privatestaticfinalintCAMERA_HEIGHT=480;4. privateCameraandCamera;5. publicvoidonLoadComplete()6. 7. publicEngineonLoadEngine()8. /構(gòu)建攝像機(jī) 9. this.andCamera=newCamera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT);10. /構(gòu)建Engine,全屏顯示,手機(jī)方向為豎屏,按比例拉伸 11. returnnewEngine(newEngineOptions(true,ScreenOrientation.PORTRAIT,12. newRatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT),13. this.andCamera);14. 15. publicvoidonLoadResources()16. /運行一個異步加載,設(shè)定內(nèi)部ProgressDialog標(biāo)題為資源索引test1對應(yīng)的字符,內(nèi)容為test2對應(yīng)的資源 17. this.doAsync(R.string.test1,R.string.test2,newCallable()18. /希望AndEngine異步加載的數(shù)據(jù) 19. publicVoidcall()throwsException20. for(inti=0;iInteger.MAX_VALUE;i+)21. 22. returnnull;23. 24. /當(dāng)加載完成后回調(diào),可在此進(jìn)行一些加載完畢的事后處理 25. ,neworg.anddev.andengine.util.Callback()26. publicvoidonCallback(finalVoidpCallbackValue)27. Log.d(Callback,over);28. 29. );30. 31. publicSceneonLoadScene()32. /構(gòu)建場景,允許的最大Layer數(shù)量為1 33. finalScenescene=newScene(1);34. returnscene;35. 36. 效果圖如下所示:2.3 AndEngine中的精靈調(diào)用: 精靈類,是一個大家耳熟能詳,并且任何游戲引擎無法回避的關(guān)鍵性組件之一,它常常被用來表示一個游戲中角色或者特定畫面要素。如此重要的存在,AndEngine當(dāng)然也不能缺少,其精靈類的基本使用方法如下所示:view plaincopy to clipboardprint?1. publicclassMainextendsBaseGameActivity2. privatestaticfinalintCAMERA_WIDTH=320;3. privatestaticfinalintCAMERA_HEIGHT=480;4. privateCameraandCamera;5. privateTextureRegionmyTextureRegion;6. publicvoidonLoadComplete()7. 8. publicEngineonLoadEngine()9. /構(gòu)建攝像機(jī) 10. this.andCamera=newCamera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT);11. /構(gòu)建Engine,全屏顯示,手機(jī)方向為豎屏,按比例拉伸 12. returnnewEngine(newEngineOptions(true,ScreenOrientation.PORTRAIT,13. newRatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT),14. this.andCamera);15. 16. publicvoidonLoadResources()17. /構(gòu)建紋理 18. TexturemyTexture=newTexture(64,64,TextureOptions.DEFAULT);19. /加載指定路徑紋理到myTextureRegion 20. this.myTextureRegion=TextureRegionFactory.createFromAsset(myTexture,21. this,Ball.png,0,0);22. /載入紋理到TextureManager 23. this.getEngine().getTextureManager().loadTextures(myTexture);24. 25. publicSceneonLoadScene()26. /構(gòu)建場景,允許的最大Layer數(shù)量為1 27. finalScenescene=newScene(1);28. /以myTextureRegion構(gòu)建Sprite(TextureRegion內(nèi)部有Texture的引用,AndEngine在構(gòu)建Sprite時一起加載了),到坐標(biāo)55,55 29. Spritesprite=newSprite(55,55,myTextureRegion);30. /添加精靈 31. scene.attachChild(sprite);32. returnscene;33. 34. 2.3 AndEngine的精靈動畫: 絕大多數(shù)的游戲開發(fā)中,僅僅有精靈類存在是并不足夠的,我們往往還需要讓精靈作出絢麗的效果以吸引用戶眼球,而這些效果在AndEngine中,統(tǒng)一通過它所提供的各個Modifier類進(jìn)行實現(xiàn)。具體調(diào)用代碼如下所示:view plaincopy to clipboardprint?1. publicclassMainextendsBaseGameActivity2. privatestaticfinalintCAMERA_WIDTH=320;3. privatestaticfinalintCAMERA_HEIGHT=480;4. privateCameraandCamera;5. privateTextureRegionmyTextureRegion;6. publicvoidonLoadComplete()7. 8. publicEngineonLoadEngine()9. /構(gòu)建攝像機(jī) 10. this.andCamera=newCamera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT);11. /構(gòu)建Engine,全屏顯示,手機(jī)方向為豎屏,按比例拉伸 12. returnnewEngine(newEngineOptions(true,ScreenOrientation.PORTRAIT,13. newRatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT),14. this.andCamera);15. 16. publicvoidonLoadResources()17. /構(gòu)建紋理 18. TexturemyTexture=newTexture(64,64,TextureOptions.DEFAULT);19. /加載指定路徑紋理到myTextureRegion 20. this.myTextureRegion=TextureRegionFactory.createFromAsset(myTexture,21. this,Ball.png,0,0);22. /載入紋理到TextureManager 23. this.getEngine().getTextureManager().loadTextures(myTexture);24. 25. publicSceneonLoadScene()26. /在Log中顯示FPS數(shù) 27. getEngine().registerUpdateHandler(newFPSLogger();28. /構(gòu)建場景,允許的最大Layer數(shù)量為1 29. finalScenescene=newScene(1);30. /獲得相對中心坐標(biāo) 31. finalintcenterX=(CAMERA_WIDTH-this.myTextureRegion.getWidth()/2;32. finalintcenterY=(CAMERA_HEIGHT-this.myTextureRegion.getHeight()/2;33. /以myTextureRegion構(gòu)建Sprite(TextureRegion內(nèi)部有Texture的引用,AndEngine在構(gòu)建Sprite時一起加載了),到屏幕中心 34. finalSpritesprite=newSprite(centerX,centerY,this.myTextureRegion);35. /添加精靈 36. scene.attachChild(sprite);37. /制作一組動作序列,首先10秒內(nèi)不斷順時針旋轉(zhuǎn)360度,而后10秒內(nèi)不斷逆時針旋轉(zhuǎn)360度 38. SequenceEntityModifierballAction=newSequenceEntityModifier(39. newRotationModifier(10,0,360),newRotationModifier(10,360,40. 0);41. /注冊動作序列到精靈 42. sprite.registerEntityModifier(ballAction);43. returnscene;44. 45. 效果如下圖所示:三、AndEngine的常用模塊介紹: 由于AndEngine包的下屬類較多,并且細(xì)分也較為龐雜,在一篇文章中一次性介紹完畢幾乎不可能實現(xiàn)。所以下面開始,小弟會就AndEngine的一些核心模塊進(jìn)行簡明扼要的說明,但如果前文做過說明的下文會一筆帶過。PS:事實上,就連AndEngine作者也不可能做到詳細(xì)介紹,畢竟到目前為止AndEngine壓根沒有出過文檔。(連andengineexamples下的示例代碼都已經(jīng)和最新的AndEngine源碼脫離了)1、關(guān)于Engine: Engine是AndEngine的核心所在,它對AndEngine引擎中Camera、Scene等重要組件進(jìn)行了統(tǒng)一管理,但必須和BaseGameActivity合作使用,利用EngineOptions類可以對其進(jìn)行必要的參數(shù)配置。2、關(guān)于BaseGameActivity: 如果您想正常使用AndEngine,那么當(dāng)前Activity就必須繼承自BaseGameActivity或其子類,否則你連初始化Engine也做不到。雖然它還有父類BaseActivity,但BaseActivity只提供了一些異步加載方法而無關(guān)AndEngine的主體實現(xiàn)。因此,BaseGameActivity就是實際上的AndEngine最基礎(chǔ)用類無疑。3、關(guān)于IResolutionPolicy: IResolutionPolicy是一個接口類,其中只規(guī)定了onMeasure函數(shù)的實現(xiàn)格式。事實上,AndEngine中所有該類具體實現(xiàn)的作用與標(biāo)準(zhǔn)View中的onMeasure函數(shù)幾乎一致,也會被標(biāo)準(zhǔn)View中的onMeasure函數(shù)重載調(diào)用(具體調(diào)用在AndEngine的RenderSurfaceView類當(dāng)中)。而且除BaseResolutionPolicy外,所有AndEngine的IResolutionPolicy實現(xiàn)也都調(diào)用了View的setMeasuredDimensionProxy函數(shù)。 在AndEngine的org.anddev.andengine.engine.options.resolutionpolicy包下有一組IResolutionPolicy接口的具體實現(xiàn),分別為BaseResolutionPolicy(除了會校驗一下屏幕大小外,什么也不做)、FillResolutionPolicy(拉伸游戲畫面為全屏填充,視攝像機(jī)大小不同,會有不同程度變形)、FixedResolutionPolicy(強行規(guī)定游戲畫面為固定大小,此設(shè)置不會自動適應(yīng)屏幕大小),RatioResolutionPolicy(按比例修正畫面大小,以適應(yīng)屏幕大小),RelativeResolutionPolicy(根據(jù)構(gòu)建RelativeResolutionPolicy時的縮放參數(shù),縮放游戲屏幕為指定比例)。 最后,所有IResolutionPolicy的實現(xiàn)類,都要隨著EngineOptions于初試化時傳遞給Engine實例才起作用。4、關(guān)于Camera: 該類即我們常說的游戲攝像機(jī),在AndEngine的Camera有兩種作用,一是用以調(diào)節(jié)屏幕的顯示區(qū)域,二是利用HUD類實際繪制游戲屏幕于手機(jī)之上。5、關(guān)于Scene: 場景容器,作用類似于LGame中的Screen,能夠?qū)⒛骋惶囟▓鼍白鳛橛螒蚰K進(jìn)行調(diào)用,我們可以利用它來切換當(dāng)前游戲的畫面與觸摸屏監(jiān)聽,切換方法是利用Engine.setScene。6、關(guān)于Entity: Entity是IEntity接口的具體實現(xiàn),也是AndEngine中無論Scene、Layer、Sprite(這個繼承關(guān)系比較遠(yuǎn),中間隔了BaseRectangle、RectangularShape、GLShape、Shape等上級類,不過追溯源頭始終繼承自Entity)的統(tǒng)一父類,通過Entity我們可以讓AndEngine中場景,或場景中某精靈實現(xiàn)統(tǒng)一效果的縮放、旋轉(zhuǎn)、變色等操作。7、關(guān)于Texture: Texture是AndEngine所提供的紋理用類,但Texture本身(在AndEngine中)并沒有提供加載圖片的方法,必須通過TextureRegionFactory類(更準(zhǔn)確的說,依賴它內(nèi)部封裝的TextureRegion、BuildableTexture等類)與之合作才可以加載紋理。除此之外,AndEngine要求所加載紋理(圖片)大小必須為2的整數(shù)次冪。8、關(guān)于TextureRegion: TextureRegion的父類是抽象類BaseTextureRegion,主要功能也被封裝在BaseTextureRegion類當(dāng)中,AndEngine提供了TextureRegionFactory這個工廠類用以簡化構(gòu)建TextureRegion的流程。單就TextureRegion來講,它的作用似乎就是讓系統(tǒng)知道如何剪切一個紋理,并返回一個這樣的紋理給你。 然而,事實上AndEngine中只有TextureRegion才更接近于通常意義上的Texture?;蛘哒f,只有TextureRegion + Texture時,我們才能較為完整的使用AndEngine紋理功能。嚴(yán)肅的講,AndEngine中的Texture有很多功能必須靠TextureRegion最終完成,比如AndEngine中的Sprite必須加載TextureRegion才能使用Texture,而不是直接調(diào)用Texture,TMXTiledMap中讀取指定瓦片返回的也是TextureRegion,而非直接的Texture(進(jìn)行畫面渲染時AndEngine內(nèi)部會調(diào)用T
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年樹脂型膠粘劑合作協(xié)議書
- 2025年河北石家莊學(xué)院選聘事業(yè)單位考試試題【答案】
- 2025年喀什地區(qū)招聘中學(xué)教師考試試題【答案】
- 2025年吉林省直事業(yè)單位招聘考試試題【答案】
- 2025年克拉瑪依市消防救援支隊招聘政府專職消防員考試試題【答案】
- 2025年院前急救信息系統(tǒng)合作協(xié)議書
- 河北非營利組織免稅資格認(rèn)定申請表
- 畢業(yè)實習(xí)周記范文
- 2025年新型膜材料及其裝置合作協(xié)議書
- 2025年電子握力計項目發(fā)展計劃
- 港口裝卸作業(yè)培訓(xùn)
- 2025年湖北省武漢市中考數(shù)學(xué)真題(無答案)
- 鉗工考試試題及答案
- 2025至2030中國牙科氧化鋯塊行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 拖欠維修費車輛以車抵債協(xié)議范本
- 2025至2030中國復(fù)印機(jī)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 暑假安全家長會4
- 2024年安徽省泗縣衛(wèi)生局公開招聘試題帶答案
- 2025年北京市高考化學(xué)試卷真題(含答案)
- 2025年重慶市中考化學(xué)試卷真題(含標(biāo)準(zhǔn)答案)
- JG/T 202-2007工程管道用聚氨酯、蛭石絕熱材料支吊架
評論
0/150
提交評論