網(wǎng)絡游戲開發(fā)-四國軍棋_第1頁
網(wǎng)絡游戲開發(fā)-四國軍棋_第2頁
網(wǎng)絡游戲開發(fā)-四國軍棋_第3頁
網(wǎng)絡游戲開發(fā)-四國軍棋_第4頁
網(wǎng)絡游戲開發(fā)-四國軍棋_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

網(wǎng)絡游戲開發(fā)—四國軍棋第12頁共12頁網(wǎng)絡游戲開發(fā)-四國軍棋摘要:利用網(wǎng)絡數(shù)據(jù)庫技術,結合目前寬帶網(wǎng)大力建設的有利優(yōu)勢,應用ActiveServerPage技術和采用SQLServer2000數(shù)據(jù)庫系統(tǒng)組件來構成軍棋數(shù)據(jù)庫,結合VisualBasic6.0作為前臺開發(fā)工具。我們開發(fā)了基于C/S模式多用戶在線網(wǎng)絡對戰(zhàn)系統(tǒng)這一程序。它運用方便、操作簡單,效率很高。實現(xiàn)了在線對戰(zhàn)的基本部分,已具有用戶注冊、多用戶同時在線對戰(zhàn)、自主的選擇座位、時間控制。關鍵字:四國軍旗、網(wǎng)絡游戲、SQL-Server、ADO。Thenetworkgamedevelopment-fourarmychessesAbstract:Makesuseofthenetworkdatabasetechnique,combinesbreadthtotakethebeneficialadvantagethatthenetconstuctsstronglycurrently,applytheActiveServerPagetechniqueandadopttheSQLServer2000databasesystemmoduletoconstitutethesoldierchessdatabase,combinetheVisualBasic6.0Bethestagedevelopmenttool.Wedeveloppedanon-linenetworkaccordingtotheC/Smodemultiuserthisproceduretothewarsystem.Itsusageconvenience,operationsimple,theefficiencyisveryhigh.Carryouton-linetothebasicpartofthewars,havealreadyhaveinthemeantimecustomerregistration,multiuserison-linetothewars,independentchoiceseat,timecontrol.Keywords::Fourarmyensigns,networkgames,SQL-Servers,ADOs.

一、系統(tǒng)設計的相關原理該網(wǎng)絡游戲軟件主要采用VisualBasic6.0、SQLServer數(shù)據(jù)庫等技術和工具,整體設計遵循軟件工程的方法,經(jīng)過需求分析、總體設計、文檔和代碼的編制、模塊測試和系統(tǒng)實現(xiàn)幾個階段。二、需求分析要實現(xiàn)一個軟件系統(tǒng),首先應該進行需求分析,這樣才能令設計出的軟件滿足用戶的各項功能。下面就對網(wǎng)絡軍棋的設計進行需求分析。2.1系統(tǒng)需要解決的主要問題因為玩棋是有特定的對象的,所以玩家進入系統(tǒng)應該進行身份驗證。玩家進入游戲界面后,需要選擇要登陸了桌子以及座位,以及走棋功能。棋子所走位置是基于網(wǎng)絡環(huán)境,棋子的坐標隨時應該從服務器的數(shù)據(jù)庫中抽取棋子的坐標值。這樣才能實現(xiàn)棋子動態(tài)走動的效果。此外,應該能夠方便、快捷的進行用戶進行遠程注冊。2.2系統(tǒng)應該具備的基本功能用戶注冊:用戶可以進行注冊,然后登錄。桌子的選擇:用戶可以隨意的選擇桌子以及座位號,并對數(shù)據(jù)庫中的相關字段進行添加數(shù)據(jù)走棋過程:系統(tǒng)會隨時記錄各個棋子所有的變動,以及玩家在此過程中于其他幾位的戰(zhàn)勝情況。2.3性能需求的要求系統(tǒng)運行環(huán)境的要求:(1)硬件環(huán)境:1)服務器端處理器:Pentium166MHz內存:256MB硬盤空間:20GB光驅:40X以上顯卡:TNT2顯示適配器網(wǎng)絡配置:寬帶網(wǎng)絡2)客戶端處理器:Pentium166MHz內存:256MB硬盤空間:20GB光驅:40X以上顯卡:TNT2顯示適配器網(wǎng)絡配置:寬帶網(wǎng)絡(2)軟件環(huán)境:1)服務器端操作系統(tǒng):WindowsXP/Windows2000(個人版除外)網(wǎng)絡協(xié)議:TCP/IP數(shù)據(jù)庫:SQLServer2000個人版編程語言:VisualBasic6.0企業(yè)版2)客戶端操作系統(tǒng):Windows98/2000/XP網(wǎng)絡協(xié)議:TCP/IP編程語言:VisualBasic6.0企業(yè)版三、系統(tǒng)的總體設置3.1系統(tǒng)功能的設計根據(jù)系統(tǒng)功能的要求,在四國軍棋分為三個模塊。即用戶注冊、實現(xiàn)網(wǎng)絡對戰(zhàn)、玩家聊天??梢詫⑾到y(tǒng)分解成為幾個功能模塊來分別設計,功能模塊間的關系如圖1所示。圖1功能模塊間的關系圖3.2詳細設計詳細設計是整個設計過程中,最重要的步驟之一。下面就分如下幾個部分對系統(tǒng)進行詳細設計:(1)棋盤界面的設計(2)數(shù)據(jù)庫及其表的設計(3)用戶注冊與登陸(4)功能模塊詳細設計(5)網(wǎng)絡游戲的模塊框圖3.2.1棋盤界面的設計在這次設計的過程中,遇到的第一個問題是怎樣來制作軍棋的棋盤.因為要在走棋的過程中確定每走一步棋子在棋盤上的位置.如果把棋盤作為一個整體的圖片家載到VB中,顯然就不能實現(xiàn)以上的功能.就此原因我們才采用了棋盤分割的方式,來逐漸的分割整個棋盤.首先我們把整個棋盤劃分成五大布分。把以上的圖片家載到VB中,利用VB中的PictureClip控件將圖片分割成30份,也就是棋盤上棋盤點都是以個圖片。但是用PictureClip控件分割的圖片不會在運行是顯示,因此需要Image控件結合才能實現(xiàn)圖片的分割,以及分割后的連接。如果認為的安放Image控件的位置不僅麻煩,而且不精確。因此需要用程序來實現(xiàn)棋盤的合并。數(shù)據(jù)庫的設計1.專家數(shù)據(jù)庫的規(guī)劃(E-R圖)在軍棋數(shù)據(jù)庫中,“棋盤表”和“棋子表”是通過用戶按照走棋的規(guī)則來建立聯(lián)系;“用戶表”和“棋子表”是通過用戶所選擇的棋子來建立聯(lián)系。假定棋盤表包括:棋盤ID、坐標X、坐標Y、類型、狀態(tài)、棋子ID、FrmX、FrmY。棋子表包括:棋子ID、級別、狀態(tài)、名稱、坐標X、坐標Y、數(shù)組下標、標志。用戶表包括:用戶ID、密碼、積分、等級、桌子ID、坐位、內容。數(shù)據(jù)庫的E-R圖如圖2:圖2數(shù)據(jù)庫的E-R圖3.3功能模塊詳細設計下面對各個功能模塊分別進行詳細討論,具體情況見系統(tǒng)源程序。3.3.1用戶注冊模塊該模塊的功能是實現(xiàn)用戶遠程注冊。用戶輸入想要注冊的用戶名和密碼,提交之后由系統(tǒng)判斷該用戶是否已經(jīng)存在,如果存在,就給出相應信息,如果不存在,就把用戶輸入的用戶名和密碼寫到數(shù)據(jù)庫中,完成注冊。3.3.2實現(xiàn)網(wǎng)絡對戰(zhàn)模塊1.用戶登錄該模塊的功能是實現(xiàn)用戶進入系統(tǒng)。用戶只需要輸入已經(jīng)注冊過的用戶名及密碼。點擊登錄這時系統(tǒng)會自動進入數(shù)據(jù)庫中查找此用戶是否存在如果不存在那么就會給出相應的信息,如果存在那么進入游戲桌面。2.走棋過程玩家在游戲沒有開始前,進行棋盤布局的時候。怎樣判斷玩家對哪顆棋子進行擺放。棋子是否可以放在這個位置。例如地雷要放在棋盤的最后兩排、軍旗要放在大本營中、炸彈不能放在前兩排、行營不可以放棋子。此問題的解決的方法為:擺放棋子時,只是根據(jù)棋子在棋盤上的位置來確定棋子的位置坐標,并對數(shù)據(jù)庫中棋子表進行添加數(shù)據(jù)。此時棋子表中的數(shù)據(jù)并不影響棋子位置。這一點可以實現(xiàn)棋子的按放。判斷棋子放在哪個位置,要根據(jù)棋盤表中“棋子ID”進行查詢來確定。開局后,玩家的走棋規(guī)則,怎樣判斷棋子在棋盤上怎樣走,例如棋子是否可以沿這鐵路線多步走,還是一步一步的走。是否可以走到用戶想要到的地方,也就是在鐵路線上原地到目的地的途中是否有棋子,如果有就不能走動。最后一行的棋子不能走多步,只能一步一步的移動。解決方法為:利用SQL語句查詢的功能,來判斷用戶在走棋的這一路程是否有棋子存在。這樣就可以實現(xiàn)連續(xù)走棋的功能;利用要移動的棋子棋盤表中記錄的坐標字段X,Y于目的棋盤坐標的字段進行比較看它們的值是否相等或不等,來決定棋子的走的方向。當玩家點擊第二下棋子是怎樣來判斷該棋子是敵方的,還是友方的,如果是敵方的要進行吃棋子的過程,怎樣來判斷雙方棋子的大小,如果是地雷或是炸彈這樣才能讓雙方的棋子消失。怎樣判斷隔棋子吃子,如果隔著棋子就不能吃掉,如果沒有就可以吃掉。如果是友方的,就不做任何動作。解決方法:在本程序中,應用了一個全局變量ChairId來確定玩家登陸棋盤的位置及所用的棋子,這樣就判斷出敵我雙方。在棋子棋子表中有一個級別的字段,根據(jù)級別的大小來判斷雙方棋子的大小。判斷是否隔棋子吃子的方法和以上的判斷是否隔棋子走棋一樣選擇座位該模塊的功能是用來不斷的對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢,來顯示所有玩家登錄的桌子,以及所有的座位。這樣別的用戶在登錄時可以很容易的找出哪個桌子哪個位置沒有用戶,方便登錄。3.3.3聊天模塊該模塊的功能是用來方便用戶的和對手下棋的時候及時溝通便于切磋棋藝和消遣,本系統(tǒng)還可以根據(jù)用戶的愛好來選擇字體和顏色這樣用戶的心情也會愉悅。3.4四國軍棋的流程圖本程序的流程圖如圖3圖3數(shù)據(jù)流程圖根據(jù)系統(tǒng)總體設計,首先系統(tǒng)要有一個登錄界面,用戶可以從該界面登錄進入游戲。此外,這個界面上還應該有一個用戶注冊的通道。在用戶正確輸入用戶名和密碼以后,接著應該進入棋桌選擇界面。在該界面上,用戶選擇加入哪個桌子,這個人機交互的過程是必不可少的。用戶確定桌子上的座位后,進入游戲界面,并開始進行對自己棋盤上的棋子進行布局。然后開始網(wǎng)絡游戲對戰(zhàn),只到確定勝負后才能算是一局結束。四、詳細設計4.1核心技術1(OLE-DB)用戶登陸在VB中不論使用那種數(shù)據(jù)庫訪問方法進行數(shù)據(jù)庫的訪問,訪問數(shù)據(jù)庫的模型都是一樣的。數(shù)據(jù)訪問的模型如圖ActiveX.exe.DLL數(shù)據(jù)源中間層ActiveX.exe.DLL數(shù)據(jù)源中間層遠程數(shù)據(jù)訪問接口數(shù)據(jù)庫客戶端ADO是ActiveXDataObject的縮寫,它是Microsoft數(shù)據(jù)庫應用程序開發(fā)的新接口,是微軟公司新的數(shù)據(jù)訪問技術是建立在OLEDB之上的高層數(shù)據(jù)訪問技術。ADO向VB程序員提供了很多好處,包括易于使用,熟悉的界面、高速度及交低的內存占用。ADO訪問數(shù)據(jù)庫的基本流程如圖5連接數(shù)據(jù)庫關閉數(shù)據(jù)庫打開連接操作數(shù)據(jù)庫連接數(shù)據(jù)庫關閉數(shù)據(jù)庫打開連接操作數(shù)據(jù)庫圖5ADO訪問數(shù)據(jù)庫的流程圖2圖片的分割在VB中有個PictureClip控件,它的作用是把一張倒入圖片,按PictureClip屬性中的行和列的值按數(shù)組的形式分成大小相等的幾份。這樣就可以把棋盤圖片利用PictureClipd的屬性分成大小相等的30份,那么每一份就是棋盤上的一點。這樣就可以確定棋子在棋盤上的坐標值。PictureClip控件可以把加載到這個控件的圖片分成相等的幾份,但并不能在窗體運行顯示出來。如果讓它顯示出來,必須要和Image控件相結合的使用。應該把PictureClip控件下的GraphicCell屬性的值傳給Image控件下的Picture屬性。例如:Image1.Picture=PictureClip.GraphicCell(i)。棋盤組合代碼:DimiAsIntegerDimX,Y,h,w,r,CX=ImagQPA(0).LeftY=ImagQPA(0).Toph=ImagQPA(0).Heightw=ImagQPA(0).WidthFori=1To29r=Int(i/5)C=iMod5ImagQPA(i).Left=X+w*CImagQPA(i).Top=Y+h*rNextiFori=0To29ImagQPA(i).Picture=PictureClipA.GraphicCell(i)Nexti3走棋規(guī)則走棋規(guī)則在本次設計中是一個難點,也是一個重點。在這部分中大部分用戶的了數(shù)據(jù)庫中的數(shù)據(jù),也就是在次的程序代碼大部分是SQL程序。SQL語句中用到的表不只是一個,有許多表之間進行嵌套的查詢。核心代碼:QZSQL="select*from棋子表where數(shù)組下標="+Str(MyIndex)SetQZRs=SqlDbase(QZCnStr,QZSQL)QPSQL="select*from棋盤表whereFrmX="+Str(ImagQPA(Index).Left)+"AndFrmY="+Str(ImagQPA(Index).Top)SetQPRs=SqlDbase(QZCnStr,QPSQL)QZRs!坐標X=ImagQPA(Index).LeftQZRs!坐標Y=ImagQPA(Index).TopQZRs.UpdateQPRs!狀態(tài)=1QPRs!棋子ID=MyIndexQPRs.Update六、系統(tǒng)的實現(xiàn)在進行了整體設計以后,就開始進行詳細的設計及編碼工作。也就是設計文件和把他們有機地組織在一起實現(xiàn)所有功能。由于篇幅有限只抽取其中的實現(xiàn)數(shù)據(jù)庫連接的一段最基礎最重要的程序做為例子。PublicQZCnStrAsStringPublicFunctionSqlDbase(CnstrAsString,SqlstrAsString)AsRecordsetDimCnAsNewConnectionDimRsAsNewRecordsetCn.OpenCnstrRs.CursorLocation=adUseClientRs.OpenSqlstr,Cn,adOpenDynamic,adLockOpti

溫馨提示

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

評論

0/150

提交評論