VB實(shí)現(xiàn)貪吃蛇小游戲_第1頁
VB實(shí)現(xiàn)貪吃蛇小游戲_第2頁
VB實(shí)現(xiàn)貪吃蛇小游戲_第3頁
VB實(shí)現(xiàn)貪吃蛇小游戲_第4頁
VB實(shí)現(xiàn)貪吃蛇小游戲_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

VB實(shí)現(xiàn)貪吃蛇小游戲——比擬適合VB初學(xué)者,屬原創(chuàng)作品圖1圖2圖3如圖1所示,布置控件,其中有4個(gè)timer控件,1個(gè)picture控件〔底圖〕,4個(gè)command控件〔上下左右〕,10個(gè)label控件。其他功能都在程序里實(shí)現(xiàn),其中貪吃蛇都是由點(diǎn)來組成的,初學(xué)者主要學(xué)習(xí)一下timer控件的應(yīng)用,還有貪吃蛇拐彎怎么實(shí)現(xiàn)的。圖2、圖3是游戲視圖。主程序:Publica,b,fAsDouble:Publici,j,c,d,e,g,h,zAsIntegerDimaa(100)AsDouble:Dimbb(100)AsDoublePrivateSubForm_Load()a=100:b=300:c=4'a、b定義第一個(gè)點(diǎn)〔紅點(diǎn)〕位置,c能控制藍(lán)點(diǎn)數(shù)量g=2000:h=2000Timer1.Interval=(200-z*30)'定義每個(gè)定時(shí)器間隔時(shí)間0.2STimer2.Interval=(200-z*30)Timer3.Interval=(200-z*30)Timer4.Interval=(200-z*30)Timer5.Interval=300Timer1.Enabled=True'初設(shè)一開始向右走Timer2.Enabled=FalseTimer3.Enabled=FalseTimer4.Enabled=FalseEndSubPrivateSubTimer1_Timer()'向右走Picture1.Cls'沒循環(huán)一次就去除上一次畫的圖像,要不就看不出運(yùn)動(dòng)了Picture1.DrawWidth=10'定義畫圖粗細(xì)b=b+100'b每次都加100,畫圖后坐標(biāo)就變了aa(i)=abb(j)=bPicture1.PSet(b,a),vbRed'繪制第一個(gè)點(diǎn)〔紅〕Fork=1Toc'此k-for循環(huán)從1到c,繪制c個(gè)藍(lán)色點(diǎn)Ifaa(99)=0Then'如果游戲剛開始,以下繪制方法,一開始j=0,j-k為負(fù),bb〔j-k〕與aa〔j-k〕數(shù)組無效,因此在j<=c時(shí)單獨(dú)繪制Ifj<=cAndi<=cThenf=400-100*(k-j)Picture1.PSet(f,100),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlue'其他情況時(shí),藍(lán)點(diǎn)走過紅點(diǎn)的軌跡EndIfEndIfIfaa(99)<>0Orbb(99)<>0Then'如果時(shí)j和i運(yùn)行到99后變?yōu)?,那么bb〔0〕為紅點(diǎn)時(shí),藍(lán)點(diǎn)必須走bb〔99〕、bb〔98〕....Ifj<=cAndi<=cThend=100-k+j:e=100-k+i'此行與以下兩行作用就是為了實(shí)現(xiàn)藍(lán)點(diǎn)繪制時(shí)混合了...bb〔0〕、bb〔99〕...的情況Ifd>=100Thend=d-100Ife>=100Thene=e-100Picture1.PSet(bb(d),aa(e)),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlueEndIfEndIfNextkIfb>4900Orb<100Ora>4900Ora<100Then'碰墻那么重新開始,以下進(jìn)行了數(shù)據(jù)重置和清零j=-1:i=-1:b=300:a=100:c=4:z=0'如果碰墻了,j=-1時(shí)因?yàn)檫\(yùn)行完了后面有j=j+1,這樣j就等于0了,把a(bǔ)、b重置MsgBox("對不起!您碰墻了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0'把a(bǔ)a〔〕、bb〔〕數(shù)組中所有的數(shù)清零NextoEndIfIfj>cThen'咬尾了就重新開始游戲,以下進(jìn)行了數(shù)據(jù)重置和清零Forp=1TocIfbb(j)=bb(j-p)Andaa(i)=aa(i-p)Thenj=-1:i=-1:b=300:a=100:c=4:z=0MsgBox("對不起!您咬尾了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0NextoExitForEndIfNextpEndIfj=j+1i=i+1Ifj=100Ori=100Thenj=0:i=0'j不能持續(xù)增長,有可能會(huì)溢出,現(xiàn)在另j到了100就變0EndSubPrivateSubTimer2_Timer()'向左走Picture1.ClsPicture1.DrawWidth=10b=b-100aa(i)=abb(j)=bPicture1.PSet(b,a),vbRedFork=1TocIfaa(99)=0ThenIfj<=cAndi<=cThenPicture1.PSet(400-100*(k-j),100),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlueEndIfEndIfIfaa(99)<>0Orbb(99)<>0ThenIfj<=cAndi<=cThend=100-k+j:e=100-k+iIfd>=100Thend=d-100Ife>=100Thene=e-100Picture1.PSet(bb(d),aa(e)),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlueEndIfEndIfNextkIfb>4900Orb<100Ora>4900Ora<100Thenj=-1:i=-1:b=300:a=100:c=4:z=0MsgBox("對不起!您碰墻了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0NextoTimer2.Enabled=FalseTimer1.Enabled=TrueEndIfIfj>cThenForp=1TocIfbb(j)=bb(j-p)Andaa(i)=aa(i-p)Thenj=-1:i=-1:b=300:a=100:c=4:z=0MsgBox("對不起!您咬尾了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0NextoTimer2.Enabled=FalseTimer1.Enabled=TrueExitForEndIfNextpEndIfj=j+1i=i+1Ifj=100Ori=100Thenj=0:i=0EndSubPrivateSubTimer3_Timer()'向下走Picture1.ClsPicture1.DrawWidth=10a=a+100aa(i)=abb(j)=bPicture1.PSet(b,a),vbRedFork=1TocIfaa(99)=0ThenIfj<=cAndi<=cThenPicture1.PSet(f,100-100*(k-j)),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlueEndIfEndIfIfaa(99)<>0Orbb(99)<>0ThenIfj<=cAndi<=cThend=100-k+j:e=100-k+iIfd>=100Thend=d-100Ife>=100Thene=e-100Picture1.PSet(bb(d),aa(e)),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlueEndIfEndIfNextkIfb>4900Orb<100Ora>4900Ora<100Thenj=-1:i=-1:b=300:a=100:c=4:z=0MsgBox("對不起!您碰墻了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0NextoTimer3.Enabled=FalseTimer1.Enabled=TrueEndIfIfj>cThenForp=1TocIfbb(j)=bb(j-p)Andaa(i)=aa(i-p)Thenj=-1:i=-1:b=300:a=100:c=4:z=0MsgBox("對不起!您咬尾了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0NextoTimer3.Enabled=FalseTimer1.Enabled=TrueExitForEndIfNextpEndIfj=j+1i=i+1Ifj=100Ori=100Thenj=0:i=0EndSubPrivateSubTimer4_Timer()'向上走Picture1.ClsPicture1.DrawWidth=10a=a-100aa(i)=abb(j)=bPicture1.PSet(b,a),vbRedFork=1TocIfaa(99)=0ThenIfj<=cAndi<=cThenPicture1.PSet(400-100*(k-j),100),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlueEndIfEndIfIfaa(99)<>0Orbb(99)<>0ThenIfj<=cAndi<=cThend=100-k+j:e=100-k+iIfd>=100Thend=d-100Ife>=100Thene=e-100Picture1.PSet(bb(d),aa(e)),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlueEndIfEndIfNextkIfb>4900Orb<100Ora>4900Ora<100Thenj=-1:i=-1:b=300:a=100:c=4:z=0MsgBox("對不起!您碰墻了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0NextoTimer4.Enabled=FalseTimer1.Enabled=TrueEndIfIfj>cThenForp=1TocIfbb(j)=bb(j-p)Andaa(i)=aa(i-p)Thenj=-1:i=-1:b=300:a=100:c=4:z=0MsgBox("對不起!您咬尾了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0NextoTimer4.Enabled=FalseTimer1.Enabled=TrueExitForEndIfNextpEndIfj=j+1i=i+1Ifj=100Ori=100Thenj=0:i=0EndSubPrivateSubCommand1_Click()'上IfTimer3.Enabled=FalseThenTimer2.Enabled=FalseTimer1.Enabled=FalseTimer4.Enabled=TrueEndIfEndSubPrivateSubCommand2_Click()'下IfTimer4.Enabled=FalseAndj>cThenTimer1.Enabled=FalseTimer2.Enabled=FalseTimer3.Enabled=TrueEndIfEndSubPrivateSubCommand3_Click()'左IfTimer1.Enabled=FalseThenTimer3.Enabled=FalseTimer4.Enabled=FalseTimer2.Enabled=TrueEndIfEndSubPrivateSubCommand4_Click()'右IfTimer2.Enabled=FalseThenTimer4.Enabled=FalseTimer3.Enabled=FalseTimer1.Enabled=TrueEndIfEndSubPrivateSubpicture1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=38AndTimer3.Enabled=FalseThen'上Timer2.Enabled=False'Timer3.Enabled=FalseTimer1.Enabled=FalseTimer4.Enabled=TrueEndIfIfKeyCode=40AndTimer4.Enabled=FalseAndj>cThen'下Timer2.Enabled=FalseTimer1.Enabled=False'Timer4.Enabled=FalseTimer3.Enabled=TrueEndIfIfKeyCode=37AndTimer1.Enabled=FalseThen'左'Timer1.Enabled=FalseTimer3.Enabled=FalseTimer4.Enabled=FalseTimer2.Enabled=TrueEndIfIfKeyCode=39AndTimer2.Enabled=FalseThen'右'Timer2.Enabled=FalseTimer3.Enabled=FalseTimer4.Enabled=FalseTimer1.Enabled=TrueEndIfEndSubPrivateSubTimer5_T

溫馨提示

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

評論

0/150

提交評論