freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vb程序設(shè)計論文俄羅斯方塊—計算機畢業(yè)設(shè)計-資料下載頁

2024-11-29 06:11本頁面

【導(dǎo)讀】俄羅斯方塊游戲課程設(shè)計。visualbasic繼承了basic語言易學(xué)易用的特點,特別適合于初學(xué)者學(xué)習(xí)

  

【正文】 塊的造型在旋轉(zhuǎn)的時候存在一個公式,當然首先要判斷是否滿足旋轉(zhuǎn)的要求,以上是一個長條型由橫著變成豎立狀態(tài)的旋轉(zhuǎn),我們以它的造型中的第三個小方塊 n(3)為中心旋轉(zhuǎn) ,這樣,在開始運動的時候,長條形要發(fā)生旋轉(zhuǎn)最少要運動到第三行,才能由橫著變成豎立狀態(tài),游戲區(qū)圖形框中第三行的第一個方塊的編號為 20,所以長條造型的第一個小方塊的編號 n(0)必須要大于 20。同樣,長條型方塊在下落到底部的時候也有限制。如果長條下落到最后一行也將無法由橫著變成豎立狀態(tài)。 我們的這個俄羅斯方塊游戲主要是利用 mand控件的 visible屬性完成效果的,其實在游戲區(qū)圖形框可以看成是由許多的 mand小方塊組成,方塊運動的過程就是造型里方塊顯示 或者隱藏,就像現(xiàn)在的霓虹燈效果一樣,由時鐘控件控制 visible屬性改變的速度,上一層的消失,下一層的顯示,這樣,從視覺效果可以看到方塊的下落運動效果。 方塊在下落的過程中會自動判斷每一行方塊的 visible屬性,如果全部為 true時,就會將這一行小方塊的 visible屬性全部變成 false,在將上面的小方塊向下移動,利用 for語句進行循環(huán)判斷,將所有這樣情況的行改變小方塊 visible屬性。當有多行同時出現(xiàn)這樣情況時使用遞歸調(diào)用,實現(xiàn)連續(xù)消行。具體程序代碼如下: For i = 190 To 10 Step 10 If cmdfang(i).Visible = True And _ cmdfang(i + 1).Visible = True And _ cmdfang(i + 2).Visible = True And _ cmdfang(i + 3).Visible = True And _ cmdfang(i + 4).Visible = True And _ cmdfang(i + 5).Visible = True And _ cmdfang(i + 6).Visible = True And _ cmdfang(i + 7).Visible = True And _ cmdfang(i + 8).Visible = True And _ cmdfang(i + 9).Visible = True Then For j = i + 4 To i Step 1 t = 1 cmdfang(j).Visible = False cmdfang(2 * i + 9 j).Visible = False For k = 1 To 4000 DoEvents Next t = 0 Next linenum = linenum + 1 For j = i 1 To 0 Step 1 If cmdfang(j).Visible = True Then cmdfang(j).Visible = False cmdfang(j + 10).Visible = True End If Next clearline 39。為了實現(xiàn)連消數(shù)行,這里使用遞歸調(diào)用 End If Next 游戲速度的自由選擇無非就是改變時鐘控件的頻率,我們在菜單中添加了選擇速度的功能,還有添加了考驗功能,將欲覽窗中的方塊造型隱藏,給玩家提高了難度,如果你不愿意接受考驗也可以點擊顯示還原成原來狀態(tài)。 游戲級別的自由選擇是讓用戶選擇游戲開始時候,游戲區(qū)底部出現(xiàn)一定行數(shù)的隨機方塊,同樣給玩家增加了難度,功能代碼如下: For i = 19 To 20 Val() Step 1 For j = i * 10 To i * 10 + 9 If Rnd = Then cmdfang(j).Visible = True Next Next 可以根據(jù)你選擇的難度系數(shù)在底層的每一行隨機產(chǎn)生超過半數(shù)(即 5個以上)以上的小方塊,這樣適合喜歡高難度的玩家。 游戲得分的計算主要是根據(jù)消除的 行數(shù)來決定的,當然每一次同時消除的行數(shù)不一樣,每一行的得分也不一樣,如果你每次消除的行數(shù)為 1,則最后得分是 100分,如果同時消除2行,則最后得分是 300分,同時消除 3行,得分為 700分,同時消除 4行,得分為 1500分,這由公式:得分 = 原來分數(shù) + 100 * (2 ^ 同時消除的行數(shù) 1)。 游戲的編輯,讀者可以參照下面的功能介紹 。 游戲功能的介紹 文件 F開始 F1:開始游戲。 繼續(xù) F2:繼續(xù)游戲。 暫停 F3:暫時停止游戲,點擊繼續(xù)的時候可以繼續(xù)游 戲。 退出 Ctrl+Q:退出游戲。 設(shè)置 選擇游戲級別。 選擇游戲速度。 考驗 顯示 F5:顯示欲覽區(qū)方塊。 隱藏 F6:隱藏欲覽區(qū)方塊。 幫助 操作提示以及版本信息和作者資料。 用戶界面具體如圖: 圖 — 登陸界面 圖 — 游戲界面 圖 — 菜單編輯界面 圖 — 游戲幫助界面 有關(guān)說明 經(jīng)過兩個多星期的設(shè)計和開發(fā),俄羅斯方塊游戲已經(jīng)成功。其功能基本符合用戶需求,能夠完成游戲的控制,方塊的變換以及消層等功能。并提供游戲設(shè)置,對于一些技術(shù)性比較過硬的玩家,可以調(diào)游戲級別、以及游戲速度,使得玩家能夠充分的發(fā)揮競技游戲的特色,可以不斷的挑戰(zhàn)自我,挑戰(zhàn)極限。 游戲設(shè)計中的不足之處 但是由于課程設(shè)計時間較短,所以該游戲還有許多不盡如人意的地方,比如方塊類型太少,退出游戲不能存儲進度等多方面問題。這些都有待進一步改善,我們在游戲中還可以更換背景音樂,以適合不同 的玩家,在每通過一關(guān)可以給玩家播放一段 flash,吸引玩家去挑戰(zhàn)極限,不斷提高玩家的興趣,相信在以后的制作過程中我們將給大家?guī)硪粋€更新功能更全面的游戲。 VB 與 C 語言之間的不同之處 我們這個小游戲也可以用 C語言來實現(xiàn),在程序的編程上沒有 VB 語言方便實用, C語言和 VB語言之間存在很多的共同點,雖然語法方面有點差異,但是在編程思路上完全一樣,VB能夠?qū)崿F(xiàn)很多 C不能做到的功能,如 When語句、 Optional參數(shù)、局部 Static變量、對象實例訪問靜態(tài)方法、 Handles綁定事件、 On Error處理 異常、 Object直接后期綁定等等。VB和 C語言,編譯出來的是同樣的 CIL,但為什么 VB支持很多有趣的特性呢。我們一起來探究一下。 VB支持用 Static關(guān)鍵字聲明局部變量,這樣在過程結(jié)束的時候可以保持變量的數(shù)值: Public Sub Test1() Static i As Integer i += 1 39。實現(xiàn)一個過程調(diào)用計數(shù)器 End Sub 我們實現(xiàn)了一個簡單的過程計數(shù)器。每調(diào)用一次 Test,計數(shù)器的數(shù)值就增加 1。其實還有很多情況我們希望保持變量的數(shù)值。而 C的 static是不能用在過程內(nèi)部的。因此要實現(xiàn)過程計數(shù)器,我們必須聲明一個類級別的變量。這樣做明顯不如 VB好。因為無法防止其他過程修改計數(shù)器變量。這就和對象封裝一個道理,本來應(yīng)該是一個方法的局部變量,現(xiàn)在我要被迫把它獨立出來,顯然是不好的設(shè)計。那么 VB 是怎么生成局部靜態(tài)變量的呢?將上述代碼返匯編,我們可以清楚地看到在 VB生成的 CIL中, i不是作為局部變量,而是作為類的 Field出現(xiàn)的: .field private specialname int32 $STATIC$Test1$2020$i 也就是說, i被改名作 為一個類的字段,但被冠以 specialname。在代碼中試圖訪 問$STATIC$Test1$2020$i是不可能的,因為它不是一個有效的標識符。但是在 IL中,將這個變量加一的代碼卻與一般的類字段完全一樣,是通過 ldfld加載的。我覺得這個方法十分聰明,把靜態(tài)變量變成生命周期一樣的類字段,但是又由編譯器來控制訪問的權(quán)限,讓它成為一個局部變量。同時也解釋了 VB為什么要用兩個不同的關(guān)鍵字來聲明靜態(tài)變量 —— Static和 Shared。由于局部靜態(tài)變量的實質(zhì)是類的字段,所以它和真正的局部變量還是有所不同的。比如在多線 程條件下,對局部靜態(tài)變量的訪問就和訪問字段相同。 Handles和 WithEvents VB除了可以用 C那樣的方法來處理事件響應(yīng)以外,還有從 VB5繼承下來的獨特的事件處理方式 —— WithEvents。 我喜歡稱這種事件處理方式為靜態(tài)的事件處理,書寫響應(yīng)事件的方法時就已經(jīng)決定該方法響應(yīng)的是哪一個事件,而 C則是在代碼中綁定事件的。 VB中 WithEvents靜態(tài)方法是非常有用的,它可以顯著增強代碼可讀性,同時也讓 ,不像 C那樣離開了窗體設(shè)計器就必須手工綁定事件。 在 Visual Basic 2020中將加入一個新的運算符 —— TryCast,相當于 C的 as運算符。我一直希望 VB有這樣一個運算符。 VB目前的類型轉(zhuǎn)換運算符主要有 CType和 DirectCast。他們的用法幾乎一樣。我詳細比較了一下這兩個運算符,得出以下結(jié)論: ,兩者沒有什么區(qū)別,都是直接調(diào)用 castclass指令,除非重載了 類 型轉(zhuǎn)換運算符 CType。 DirectCast運算符是不能重載的。 , CType會調(diào)用 VB指定的類型轉(zhuǎn)換函數(shù)(如果有的 話),比如將 String轉(zhuǎn)換為 Int32時,就會自動調(diào)用 。 在原先的 VB6里,有一項奇特的功能 —— 默認屬性。在 VB6中,對象的名稱可以直接表示該對象的默認屬性。 VB從 “ 可選參數(shù) ” 這一特性。就是說,函數(shù)或子程序的參數(shù)有些是可選的,調(diào)用的時候可以不輸入。其實 VB從 ,只不過到了。在 VB4里,可選參數(shù)可以不帶默認值,而在 VB里,如果使用可選參數(shù),則必須帶有默認值。在調(diào)用的時候 , VB若發(fā)現(xiàn)參數(shù)被省略,則自動讀取 .param部分的默認值,并顯式傳遞給過程。這一部分完全由編譯器處理,而且沒有任何性能損失,和手工傳遞所有參數(shù)是完全一樣的。至于按名傳遞, VB會自動調(diào)整參數(shù)的順序,其結(jié)果與傳統(tǒng)方式的傳遞也沒有任何的不同。這說明我們可以放心地使用這項便利。而且?guī)в锌蛇x參數(shù)的過程拿到 C中,頂多變成不可選參數(shù),也不會造成什么其他的麻煩。 COM組件都使用了默認參數(shù),而且有些過程的參數(shù)列表非常長,在 VB里可以輕松地處理它們,而在 C中經(jīng)常讓開發(fā)者傳參數(shù)傳到吐血。 致謝 在本次課程 設(shè)計中,我從指導(dǎo)老師化希耀和張兵身上學(xué)到了很多東西。老師認真負責的工作態(tài)度,嚴謹?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺。他無論在理論上還是在實踐中,都給與我很大的幫助,使我得到不少的提高這對于我以后的工作和學(xué)習(xí)都有一種巨大的幫助,感謝他耐心的輔導(dǎo)。 另外,在游戲開發(fā)過程中許多同學(xué)也給于我們很大的幫助,幫助解決了不少的難點,使得游戲能及時開發(fā)完成 ,在此謝謝各位對此次設(shè)計的幫助。 參考文獻 : [1]龔沛曾,陸慰民,楊志強 .Vsual Basic 程序設(shè)計教程 .高等教育出版社出版 。 [2]劉新民,蔡瓊,白糠 生 .Vsual Basic 程序設(shè)計 .清華大學(xué)出版社出版。 [3]唐凱軍,湯惠莉 .VB6編程 80 例上手 .山東電子音像出版社。 [4]盧毅 .Vsual Basic 實例教程 .科學(xué)出版社出版。 [5]趙欣勝,亢慧娟,劉晟宏 .Vsual Basic 經(jīng)典范例 50 講 .科學(xué)出版社出版。 附件: Private Sub hidefang(a As Integer) 39。定義使方塊不可見的過程 Select Case a Case 0 39。a= 0使游戲區(qū)方塊不可見 cmdfang(n(0)).Visible = False cmdfang(n(1)).Visible = False cmdfang(n(2)).Visible = False cm
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1