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

下載本文檔

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

文檔簡介

VB實現(xiàn)貪吃蛇小游戲——比擬適合VB初學者,屬原創(chuàng)作品圖1圖2圖3如圖1所示,布置控件,其中有4個timer控件,1個picture控件〔底圖〕,4個command控件〔上下左右〕,10個label控件。其他功能都在程序里實現(xiàn),其中貪吃蛇都是由點來組成的,初學者主要學習一下timer控件的應用,還有貪吃蛇拐彎怎么實現(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定義第一個點〔紅點〕位置,c能控制藍點數(shù)量g=2000:h=2000Timer1.Interval=(200-z*30)'定義每個定時器間隔時間0.2STimer2.Interval=(200-z*30)Timer3.Interval=(200-z*30)Timer4.Interval=(200-z*30)Timer5.Interval=300Timer1.Enabled=True'初設一開始向右走Timer2.Enabled=FalseTimer3.Enabled=FalseTimer4.Enabled=FalseEndSubPrivateSubTimer1_Timer()'向右走Picture1.Cls'沒循環(huán)一次就去除上一次畫的圖像,要不就看不出運動了Picture1.DrawWidth=10'定義畫圖粗細b=b+100'b每次都加100,畫圖后坐標就變了aa(i)=abb(j)=bPicture1.PSet(b,a),vbRed'繪制第一個點〔紅〕Fork=1Toc'此k-for循環(huán)從1到c,繪制c個藍色點Ifaa(99)=0Then'如果游戲剛開始,以下繪制方法,一開始j=0,j-k為負,bb〔j-k〕與aa〔j-k〕數(shù)組無效,因此在j<=c時單獨繪制Ifj<=cAndi<=cThenf=400-100*(k-j)Picture1.PSet(f,100),vbBlueElsePicture1.PSet(bb(j-k),aa(i-k)),vbBlue'其他情況時,藍點走過紅點的軌跡EndIfEndIfIfaa(99)<>0Orbb(99)<>0Then'如果時j和i運行到99后變?yōu)?,那么bb〔0〕為紅點時,藍點必須走bb〔99〕、bb〔98〕....Ifj<=cAndi<=cThend=100-k+j:e=100-k+i'此行與以下兩行作用就是為了實現(xiàn)藍點繪制時混合了...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'碰墻那么重新開始,以下進行了數(shù)據(jù)重置和清零j=-1:i=-1:b=300:a=100:c=4:z=0'如果碰墻了,j=-1時因為運行完了后面有j=j+1,這樣j就等于0了,把a、b重置MsgBox("對不起!您碰墻了!接下來將重新開始游戲!")Foro=0To99aa(o)=0:bb(o)=0'把aa〔〕、bb〔〕數(shù)組中所有的數(shù)清零NextoEndIfIfj>cThen'咬尾了就重新開始游戲,以下進行了數(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ù)增長,有可能會溢出,現(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論