版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
PAGE一、引言[1][5]DirectDraw的圖形處理功能非常強大,它可以評估視頻硬件的能力,只要可能,它就會對其某一特性加以利用。例如,如果你的顯卡支持硬件Blit,DirectDraw就會將位圖映射這一操作分派給顯卡來完成,極大的提升運行速度。如果軟件中調(diào)用的功能硬件功能不支持時,DirectDraw便利用硬件仿真層(HEL)來完成請求的這項操作。DirectDraw的功能還包括:支持多后臺緩存(backbuffers)的換頁(pageflipping)操作;支持窗口和全屏模式應(yīng)用程序的裁剪;支持3—DZ緩存;支持帶Z軸方向的硬件輔助覆蓋;支持可訪問圖象縮放(stretching)操作;支持同時訪問標(biāo)準(zhǔn)的和增強的顯示設(shè)備內(nèi)存區(qū),包括動態(tài)改變調(diào)色板,獨占訪問硬件,和分辨率切換等等。這里以圖1背景圖圖1背景圖圖2前景圖圖3程序定位圖圖4圖2前景圖圖3程序定位圖圖4圖5動畫效果圖B圖5動畫效果圖B圖6動畫效果圖C圖7圖7圖8圖9Player1圖10彈板鏈圖11Player2圖9Player1圖10彈板鏈圖11Player2游戲中需要一個函數(shù)動態(tài)而隨機的生成擋板隊列,功能的實現(xiàn)在CQueue::CreateQueue()當(dāng)中.對它的要求是隨機性和可控性,可控性即某一種板出現(xiàn)的比例大而另一種板出現(xiàn)的比例小。這里,隨機函數(shù)的生成是使用Rand(),它可以隨機的生成0—RAND_MAX之間的任意一個數(shù),其中RAND_MAX的宏定義如下:#defineRAND_MAX0x7fff,如果希望得到一個1—100之間的整數(shù),把Rand()函數(shù)返回值對100求余就可以了。程序中相應(yīng)代碼是:LONGlRand=rand()%max;returnlRand;若需要控制某一種板出現(xiàn)的機率大些,將需要將隨機結(jié)果再進行一個區(qū)域判斷,如:如果生成的數(shù)在1—20之間的就是彈板,1-10之間的數(shù)就表示生成一個滑板。這種定界方法可以解決任何一種隨機數(shù)生成的問題。LeapMan游戲中,游戲循環(huán)的主體是ProcessNextFrame()函數(shù),如果程序沒有收到WM_QUIT消息時就反復(fù)的執(zhí)行.函數(shù)中分別進行下列操作: InitSprite();//當(dāng)程序第一次執(zhí)行或者重新開始游戲時,進行角色初始化和變量重置。使用Sprite_Queue。CreateSpriteQueue()更新精靈隊列。它的判斷條件是:如果最下面的一個板上升到一定的高度的時候,就隨機的生成一個新板并加入到精靈隊列中。函數(shù)UpdateSprites()更新游戲中精靈的狀態(tài),包括人物角色狀態(tài)的變化和板狀態(tài)位置的變化.關(guān)于物體位置與狀態(tài)的變化是由現(xiàn)在的狀態(tài)和KeyDown鍵值來實現(xiàn)的。角色的變化控制函數(shù)UpdateSprites()包括MoveAllUP()把所有的Sprite上移MovePlayerUpDown()來確定玩家是否懸空下落或者是碰彈板上移MoveLeftOrRight()來根據(jù)外部按鍵狀態(tài)左右移動玩家角色,如果按左鍵,MoveLeft狀態(tài)為1,那么Player1就向左移動若干單位;如果右就為—1,右移若干單位;同樣如果沒有按鍵就為0,表示不移動CheckIfInAire()函數(shù)來檢測是否懸空,它通過索引來逐一檢索精靈串,取得現(xiàn)在的位置信息,看看它們的區(qū)域是否重合,如果有的話就表明Player站在板上,否則就在使Player下落,并顯示下一個角色圖。ChangeSprites()決定場景中所有精靈的變化,這種改變是按照預(yù)定義的規(guī)則進行的。最后一步操作是DisplayFrame(),把所有的角色與場景顯示到屏幕上,在顯示的時候,不同角色優(yōu)先級不同,先用冒泡排序法將它們的位置排序后,使最后面的Sprite圖就先顯示出來,而最前面的圖就后顯示出來。最后就可以得到流暢的游戲畫面了.圖12windows程序結(jié)構(gòu)圖12windows程序結(jié)構(gòu)[2][3]圖14臺球模型圖13碰撞示意圖在這個三維游戲pool’sUp當(dāng)中,關(guān)鍵問題就是在于球的碰撞控制。碰撞包括球與球的碰撞、球與球臺的碰撞??偟膩碚f碰撞就是預(yù)測未來幀—N物體是否發(fā)生接觸,如果物體發(fā)生了接觸則在第N-1幀做出反射動作。否則運動物體間會發(fā)生明顯嵌入或粘連現(xiàn)象。圖14臺球模型圖13碰撞示意圖圖8。1判斷球與球之間是否發(fā)生碰撞非常簡單,只要檢測空間兩點的距離是否小與球的直徑便可。而球之間的碰撞反應(yīng)如圖13:假設(shè)兩球是完全彈性碰撞,向量t為兩球心間的連線,n是垂直于MO的向量。則v1在t上的分量v1t與v2在t上的分量v2t動量守恒,由于兩球質(zhì)量相同~聯(lián)立動能守恒公式可得:碰撞后兩球的速度在t上的分量被交換。而在n方向上v1n,v2n將保持不變。最后把v1t、v1n、,v2t、v2n分別沿x軸y軸投影對應(yīng)合成后即可得到兩球碰撞后的速度。圖8。1球與球臺的碰撞實作起來相對復(fù)雜,因為球臺是一個網(wǎng)格模型,頂點數(shù)目較多而且形狀不規(guī)則,所以只有另想辦法.如圖14,假想o是桌面上的一個球,沿圓心作4個向量把圓平均分為4份。每當(dāng)球移動后就判斷這些個向量是否有和桌面相交。如果有則進行碰撞反應(yīng)處理,否則速度方向不變。考慮到球臺幾何形狀的特殊性,在圖15情況下球與球臺的碰撞會發(fā)生異常。圖16碰撞異常狀態(tài)a圖15碰撞異常狀態(tài)a圖16碰撞異常狀態(tài)a圖15碰撞異常狀態(tài)a若干時間后球o運動到如圖16的位置。圖18檢測碰撞回退a圖19檢測碰撞回退b圖17增加檢測矢量方法顯然,球o與球臺發(fā)生了碰撞,但是由于向量a,b,c,d的方向問題,此時無法判斷球與球臺的碰撞。球?qū)⑦M入球臺內(nèi)部,造成失真。很顯然增加方向向量的數(shù)量可以很好地解決這個問題,如圖17.當(dāng)方向向量增加到36時,不會出現(xiàn)碰撞檢測失誤。但卻有一個非常明顯的缺點——增加了系統(tǒng)負(fù)擔(dān),在每一幀都必須對球體的36個方向進行檢測,大大降低運行速度.如果一個網(wǎng)格模型的頂點數(shù)目在300左右,那么每增加8個方向檢測fps就會減少1.也就是說~如果方向向量的數(shù)目從36減少至8,那么至少將fps提升4。如果臺面上共有10個球,那么將fps在原有基礎(chǔ)上提高40圖18檢測碰撞回退a圖19檢測碰撞回退b圖17增加檢測矢量方法下面介紹另一個方法如圖18:這時雖然球已經(jīng)與桌面相交,但方向向量并沒有檢測出碰撞若此時球繼續(xù)沿v方向移動那么會出現(xiàn)下列狀況(圖19),此時向量a檢測出了球體與球臺發(fā)生碰撞,設(shè)球與桌面的交點為p,并設(shè)m_fDis是球心到p的距離,R為球半徑。如果此時將球沿-a方向移動R-m_fDis,與此同時調(diào)用碰撞反應(yīng)函數(shù),則可避免球與球臺的粘連。球與球臺的碰撞反應(yīng)涉及到向量的反射問題,基本方法如圖20:圖20碰撞后方向求解圖圖20碰撞后方向求解圖AB為反射平面,N為平面AB的法線,向量o為平行四邊形的對角線。已知a為入射線,且法線方向已知~則一定可以求出a在N上的投影an。根據(jù)圖示可知:a+an=1/2*o=〉o=2*(a+an),因為a,=o—a所以a,=a+2*an(考慮到復(fù)雜性問題,目前這個臺球使用的還是后滯碰撞算法,只是在第N幀時才作出判斷,因此,球球碰撞時還會有嵌入的現(xiàn)象。)在開發(fā)三維游戲的過程中,一般來說有這幾個要解決的問題:創(chuàng)建設(shè)備→使用Mesh模型→初始化頂點→定義矩陣并利用矩陣進行變換→加入光源→使用紋理→加入攝像機→(進入游戲控制)。只有創(chuàng)建D3D設(shè)備的步驟是不可以倒置的,其他的步驟都要在設(shè)備建立好后才可以進行.當(dāng)然,進入游戲控制(游戲循環(huán)GameLoop)后,可能還經(jīng)常要反復(fù)進行上面的操作,如改變攝像機等。不同的程序有不同的結(jié)構(gòu),但是上面的技術(shù)都會用到。這個程序的結(jié)構(gòu)與Windows平臺其他程序差不多,只是多了一個Gameloop()循環(huán)[圖12]。收到退出消息之前,它會一直在While(TRUE){}這個語句中l(wèi)oop下去.主函數(shù)即WinMain()函數(shù)中的執(zhí)行順序如下:創(chuàng)建一個窗口→初始化Direct3D→處理系統(tǒng)消息→繪制與顯示場景→關(guān)閉與清除D3D設(shè)備的初始化代碼如下:BOOLCGame::InitializeD3D(HWNDhwnd,UINTnWidth,UINTnHeight){m_pD3D=Direct3DCreate8(D3D_SDK_VERSION);//創(chuàng)建全局設(shè)備m_pD3D—>GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddm)//設(shè)置顯示適配器d3ddm.Format=CheckDisplayMode(nWidth,nHeight,32);}//設(shè)置顯示模式并調(diào)用InitializeLights()創(chuàng)建燈光:通過給D3DLIGHT8賦值,并執(zhí)行m_pD3DDevice-〉SetLight(0,&d3dLight)就設(shè)置各種光線效果。最后兩句m_pD3DDevice—〉LightEnable(0,TRUE)m_pD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE)//并改變D3D的狀態(tài),使燈光生效在函數(shù)GameLoop中,每次渲染之前先根據(jù)變量的值來確定物體的顯示狀態(tài)。Pool'sUp的核心就在GameLoop中間:while(msg。message!=WM_QUIT&&!m_bQuit)循環(huán)能保證只要沒有退出請求,就一直執(zhí)行TranslateMessage(&msg);DispatchMessage(&msg);響應(yīng)消息.如果檢測消息隊列為空時,就對改變后的場景進行渲染。渲染時,先確定是否有Mouse和Keyboard的外部輸入,更改標(biāo)識后執(zhí)行Render()函數(shù)來渲染.在Render()函數(shù)當(dāng)中,先判斷球是否全部靜止,如果還有運動著的,就控制玩家不能再次擊球,這是通過變量beSend控制的。利用DirectInput處理完Mouse和Keyboard后,在m_pD3DDevice-〉BeginScene();m_pD3DDevice-〉EndScene();兩個函數(shù)之間的代碼:{Setup3DCamera();//設(shè)置攝像機Render3D(); //3D場景RenderText();//文字輸出}輸出游戲中的每一幀信息.渲染函數(shù)Render3D()中,第一步確定輸出視角,第二步將Mesh輸出逐一輸出,第三步加入光效,第四步確定輸出視角,經(jīng)過四步后即完成每幀渲染。=1\*GB2⑴確定輸出視角,即設(shè)置在三維空間里物體的顯示畫面。實際上就是我們前面已經(jīng)介紹過的坐標(biāo)變換函數(shù)的應(yīng)用。原理如下:D3DXMATRIXmatWorld; D3DXMatrixTranslation(&matWorld,0,0,0); m_pD3DDevice-〉SetTransform(D3DTS_WORLD,&matWorld);坐標(biāo)變換的函數(shù)如下: D3DXMatrixRotationX(&matWorldRotationX,D3DX_PI/—2。0);//把House繞X轉(zhuǎn)-90度 D3DXMatrixRotationY(&matWorldRotationY,D3DX_PI/-2。0);//再繞Y轉(zhuǎn)—90度 D3DXMatrixTranslation(&matWorld,30.0f,0。0f,—40.0f);//進行X30,Y—40單位的平移 D3DXMatrixMultiply(&matWorld,&matWorld,&matWorldRotationX); D3DXMatrixMultiply(&matWorld,&matWorld,&matWorldRotationY);//最后兩條語句將上述變換相乘,最終得到視角變換的效果。即按照游戲的要求把想觀察到的物理顯示到計算機屏幕上。=2\*GB2⑵程序中使用到的Mesh標(biāo)識了很多點在三維空間信息的Vector序列信息,它們構(gòu)成一個個基本的三角形,渲染時是對每個三角形逐一渲染的,程序執(zhí)行到這里僅僅先把頂點序列準(zhǔn)備好。對于外部調(diào)入的模型,像程序中拿到到的房屋模型housewithmesh。x和table.x文件,需要調(diào)入到頂點緩沖當(dāng)中。在渲染Mesh的時候需要定義一個結(jié)構(gòu)變量,(它們都是D3D有函數(shù)支持的)LPD3DXMESHpMeshTable;下面的函數(shù)即把一個mesh裝載到LPD3DXMESHBUFFER變量當(dāng)中。D3DXLoadMeshFromX(pFilename,D3DXMESH_MANAGED,m_pD3DDevice,NULL,&pMaterialsBuffer,&m_dwNumMaterials,&pMeshTable))同時返回的還有這個Mesh中triangle的數(shù)量多少,m_dwNumMaterials將會在上面的pTable->Render()函數(shù)中用到. pMeshTable->CloneMeshFVF(D3DXMESH_MANAGED,MESH_D3DFVF_CUSTOMVERTEX,m_pD3DDevice,&m_pMeshTable);這個函數(shù)將MeshBuffer中的點信息拷貝到成員變量pMeshTable當(dāng)中。=3\*GB2⑶加入燈光.Direct3D提供了三種光源:點光源POINT(例如燈泡)、平行光源DIRECTIONAL(例如太陽光)和聚光燈SPOT。一個光源可以由一個D3DLIGHT9結(jié)構(gòu)表示,這個結(jié)構(gòu)的參數(shù)有:Type:表明光源種類??梢允荄3DLIGHT_POINT、D3DLIGHT_SPOT或D3DLIGHT_DIRECTIONAL。Diffuse/Specular/Ambient:光源射出的三種光的顏色,每一個都是一個D3DCOLORVALUE結(jié)構(gòu),有a/r/g/b四個成員,取值范圍都是0。0f到1.0f.Position:光源的位置,對于平行光源此值無意義。Direction:光源照射的方向,對于點光源此值無意義.Range:光源能照射多遠,最大允許值為sqrt(FLT_MAX),對于平行光源此值無意義,Attenuation0/Attenuation1/Attenuation2:指定光線的衰減方式。一般來說Attenuation0與Attenuation2都設(shè)為0,Attenuation1設(shè)為一個常數(shù)。如果你將Attenuation0設(shè)為1并將其余兩個值設(shè)為0,光線將不隨距離而衰減。對于平行光源此值無意義。接下來的三個參數(shù)是聚光燈所特有的。其中聚光燈的內(nèi)圈的亮度不隨距離而衰減,內(nèi)圈與外圈之間則不然。下面三個參數(shù)就與這些有關(guān):Theta:內(nèi)圈的角度(單位為弧度)。Phi:外圈的角度(單位為弧度)。Falloff:內(nèi)圈與外圈之間的亮度的衰減率,一般設(shè)為1.0f.填充完D3DLIGHT9結(jié)構(gòu)后,執(zhí)行:pDev->SetLight(0,&d3dLight);//設(shè)置為0號燈pDev-〉LightEnable(0,TRUE);//打開0號燈后就在渲染狀態(tài)里打開了燈光的設(shè)置。=4\*GB2⑷物體的具體位置確定后,根據(jù)計算(使用Dx函數(shù))數(shù)目逐個進行渲染.for(DWORDi=0;i<m_dwNumMaterials;i++){ m_pD3DDevice—〉SetMaterial(&m_pMeshTableMaterials[i]);//材質(zhì)的設(shè)置 m_pD3DDevice-〉SetTexture(0,m_pMeshTableTextures[i]);//紋理的設(shè)置 m_pMeshTable-〉DrawSubset(i);//渲染是第i種材質(zhì)的三角形}=5\*GB2⑸渲染完成后,還要設(shè)定觀察點ViewPort,即攝像機的位置.它相當(dāng)于現(xiàn)實世界中我們的眼睛。程序中,如果我們要實現(xiàn)三維效果,則根據(jù)已經(jīng)有的球桿位置確定的觀察點來改變攝像機就可以了。代碼如下: D3DXMatrixLookAtLH(&matView,&D3DXVECTOR3(),//像機位置 &D3DXVECTOR3(0。0f,0.0f,0。0f),//觀察的方向 &D3DXVECTOR3(0。0f,0。0f,1.0f));//像機的正上方最后,所有的場景都準(zhǔn)備好后,m_pD3DDevice-〉Present()就把渲染后的物體就可以顯示到屏幕上了。DirectInput的絕對優(yōu)勢在于它為鼠標(biāo)、鍵盤、操縱桿等各式各樣的輸入設(shè)備提供統(tǒng)一的操縱方式。DirectInput提供一個外設(shè)輸入狀態(tài)隊列,外設(shè)的輸入信息會自動保存在其中.當(dāng)程序在需要響應(yīng)時把這個狀態(tài)讀出來即可[2]。在使用時,首先必須創(chuàng)建一個DirectInput8對象,代碼如下:LPDIRECTINPUT8pInput;DirectInput8Create(GetModuleHandle(NULL),DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&pInput,NULL);然后,需要創(chuàng)建一個DirectInput設(shè)備: LPDIRECTINPUTDEVICE8pDev; pInput—>CreateDevice(GUID_SysKeyboard,&pDev,NULL);設(shè)置好它的數(shù)據(jù)格式: pDev->SetDataFormat(&c_dfDIKeyboard);設(shè)置它的協(xié)作級后獲取設(shè)備:pDev->Acquire();這樣完成初始化后,DirectInput就已經(jīng)把Windows對鍵盤的控制權(quán)剝奪了,以后的鍵盤消息將不會被送入消息循環(huán)。然后在需要的地方,比如說在刷新游戲時,加入對鍵盤數(shù)據(jù)進行讀取和處理的語句,語句如下:#defineKEYDOWN(key)(buffer[key]&0x80)//定義一個宏,方便處理鍵盤數(shù)據(jù)charbuffer[256];//鍵盤數(shù)據(jù)pDev->GetDeviceState(sizeof(buffer),(LPVOID)&buffer);//得到鍵盤數(shù)據(jù)if(KEYDOWN(DIK_XXX))//如果XXX鍵被按下…{}可以看出,用DirectInput在Pool'sUp中控制視角變化時是相當(dāng)方便的.DirectAudio在Pool'sUp中的應(yīng)用[6]程序中有需要聲音的地方,使用的是DirectAudio接口。首先聲明變量如下:IDirectMusicSegment8*m_pSegment;IDirectMusicPerformance8*m_pDirectAudioPerformance;IDirectMusicLoader8*m_pDirectAudioLoader;IGraphBuilder*m_pGraph;IMediaControl*m_pMediaControl;IMediaPosition*m_pMediaPosition;六、結(jié)束語游戲開發(fā)雖然已經(jīng)有幾十年的歷史了,但是真正引起我們重視的也只是從2001年開始的。目前中國游戲開發(fā)人員太少,技術(shù)上遠遠落后于美、日、韓等國家。不過從03年始,學(xué)習(xí)這項技術(shù)在國內(nèi)已經(jīng)開始升溫,成為大學(xué)的一門專業(yè)也指日可待。在這段學(xué)習(xí)的過程中,我也體會到這種技術(shù)的復(fù)雜性.在這兩個小游戲當(dāng)中使用到的僅僅是DirectX中的一點皮毛罷了。游戲中沒有人工智能,沒有網(wǎng)絡(luò)互聯(lián),沒有動態(tài)建模、也沒有使用引擎技術(shù).目前DirectX已經(jīng)發(fā)展到了9。0,由于我的大部分資料都是7.0—8。0版的,所以兩個游戲我都采用8.0的接口.寫這兩個程序參考了大量的游戲代碼.由于在趕論文的才覺得有必要再編一個二維的LeapMan游戲,至此還不是很完善,只是DirectX的技術(shù)問題都解決了??赡芤院髮σ恍﹩栴}的看法還會有所改變,但我相信未來從事游戲開發(fā)的道路是光明的,也相信自己會一直走下去最終成為業(yè)界的嬌嬌者。希望有更多的人能和我一起探討這方面的問題。(LeapMan開發(fā)工具:VC6+VA+DirectXSDK+Photoshop+MsPaint)(Pool’sUp開發(fā)工具:VC+DX+Photoshop+mspaint+VA+3dsmax5。0)致謝:這次的畢業(yè)設(shè)計對我來說是一個很大的挑戰(zhàn),我自己也沒有想到我這一年時間能把DirectX技術(shù)學(xué)會,通過這次畢業(yè)設(shè)計,感覺自己在完成大學(xué)學(xué)業(yè)的同時,已經(jīng)跟上了軟件產(chǎn)業(yè)發(fā)展的步伐。在本文的選題、寫作、以及論文的結(jié)構(gòu)設(shè)計、內(nèi)容安排、總體布局等方面石瑋老師一直對我進行細心的指導(dǎo)和耐心的幫助。整個做論文過程中,他要求我審查每一個語句每一個標(biāo)點,經(jīng)過很多次修改并確認(rèn)無誤后才最終定稿。在此我要向他嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度表示由衷的感謝和誠摯的敬意!并且我也要感謝所有大學(xué)四年來授予我知識、給予我關(guān)懷的老師。劉升老師和童強老師的教導(dǎo)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集體畫畫策劃活動方案(3篇)
- 2026湖南岳陽市平江縣縣直(街道)單位遴選(選調(diào))36人參考題庫附答案
- 2026湖南長沙市明德望城學(xué)校上學(xué)期校聘教師招聘6人考試備考題庫附答案
- 2026福建廈門市翔安投資集團有限公司招聘2人(第一期)參考題庫附答案
- 2026福建省福州市潤樓教育科技集團有限公司招聘1人參考題庫附答案
- 2026福建福州工業(yè)園區(qū)開發(fā)集團社會招聘2人備考題庫附答案
- 2026鄂爾多斯應(yīng)用技術(shù)學(xué)院附屬醫(yī)院招聘15名控制數(shù)工作人員備考題庫附答案
- 萬載縣2025年面向社會公開招聘社區(qū)工作者(專職網(wǎng)格員)【25人】參考題庫附答案
- 2026年及未來5年市場數(shù)據(jù)中國云南節(jié)能環(huán)保行業(yè)市場全景分析及投資策略研究報告
- 北京通州產(chǎn)業(yè)服務(wù)有限公司招聘參考題庫附答案
- 2026院感知識考試題及答案
- 《紅樓夢》導(dǎo)讀 (教學(xué)課件) -高中語文人教統(tǒng)編版必修下冊
- 安徽省九師聯(lián)盟2025-2026學(xué)年高三(1月)第五次質(zhì)量檢測英語(含答案)
- (2025年)四川省自貢市紀(jì)委監(jiān)委公開遴選公務(wù)員筆試試題及答案解析
- 2025年度骨科護理部年終工作總結(jié)及工作計劃
- 2026安徽省農(nóng)村信用社聯(lián)合社面向社會招聘農(nóng)商銀行高級管理人員參考考試試題及答案解析
- 室外供熱管道安裝監(jiān)理實施細則
- 巖板采購合同范本
- 腰背部推拿課件
- 通信管道施工質(zhì)量管理流程解析
- 商場經(jīng)理2025年終工作總結(jié)(二篇)
評論
0/150
提交評論