貪吃蛇實(shí)訓(xùn)報(bào)告_第1頁(yè)
貪吃蛇實(shí)訓(xùn)報(bào)告_第2頁(yè)
貪吃蛇實(shí)訓(xùn)報(bào)告_第3頁(yè)
貪吃蛇實(shí)訓(xùn)報(bào)告_第4頁(yè)
貪吃蛇實(shí)訓(xùn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-.z.鄭州輕工業(yè)學(xué)院實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)名稱:貪吃蛇指導(dǎo)教師::**:班級(jí):提交日期:一.實(shí)驗(yàn)?zāi)康耐ㄟ^開發(fā)一款貪吃蛇游戲程序,熟練掌握C#編程語(yǔ)言、和面向?qū)ο蟪绦蛟O(shè)計(jì)方法,獨(dú)立完成一個(gè)游戲程序的開發(fā)。二.實(shí)驗(yàn)題目本次實(shí)訓(xùn)的題目為貪吃蛇。通過使用C#編程語(yǔ)言來(lái)實(shí)現(xiàn)。三.功能描述1.游戲的根本功能描述游戲場(chǎng)地是一片矩形區(qū)域的空地構(gòu)成,蛇可以在這片定義的區(qū)域中自由移動(dòng)。定義一個(gè)Block來(lái)構(gòu)成石塊,蛇頭,蛇身以及豆。蛇由蛇頭和蛇身組成。當(dāng)游戲開場(chǎng)之后,定義的區(qū)域中出現(xiàn)一顆豆和一條蛇,并且蛇不停地移動(dòng),蛇移動(dòng)的方向與蛇頭的方向一致。通過space或者暫停鍵可以使游戲停頓,蛇停頓移動(dòng),分?jǐn)?shù)停頓積分。當(dāng)蛇移動(dòng)時(shí),玩家可以使用"↑〞、"↓〞、"←〞和"→〞四個(gè)方向鍵改變蛇的移動(dòng)方向。當(dāng)蛇頭與豆的位置重合時(shí),豆被蛇吃掉,同時(shí)在草坪中再生成一顆新的豆,蛇身增加一節(jié)。當(dāng)蛇頭碰到石塊時(shí),蛇死亡,游戲完畢。當(dāng)蛇頭咬到蛇身時(shí),則蛇死亡,游戲完畢。當(dāng)蛇頭碰到草坪四周時(shí),蛇立即斃命,游戲完畢。游戲分為不同的級(jí)別,第一關(guān)游戲速度為200,當(dāng)蛇吃五個(gè)豆子就可以過關(guān),級(jí)別顯示為2,速度增加100變?yōu)?00.第二關(guān)為吃夠10個(gè)豆子,速度增加50,以后以此類推。游戲菜單中設(shè)有游戲幫助,玩家可以通過點(diǎn)擊幫助了解游戲的玩法。對(duì)于不是第一次玩的玩家可以改變蛇的運(yùn)動(dòng)速度,來(lái)增加難度。在菜單中設(shè)有加速和減速兩個(gè)鍵,單擊可以改變速度。游戲菜單中還有時(shí)間顯示。當(dāng)游戲暫停時(shí),可以通過"繼續(xù)〞鍵使游戲繼續(xù)進(jìn)展。四.需求分析本游戲用戶可以自己練習(xí)和娛樂。本游戲需要滿足以下幾點(diǎn)要求:利用方向鍵"↑、↓、←、→〞來(lái)改變蛇的運(yùn)行方向??崭矜I暫停游戲,并在隨機(jī)的地方產(chǎn)生食物。吃到食物就變成新的蛇體,碰到壁或自身則游戲完畢,否則正常運(yùn)行??尚行苑治觯贺澇陨哂螒蚴且环N簡(jiǎn)單的群眾的游戲,自從計(jì)算機(jī)實(shí)現(xiàn)以來(lái),深受廣闊電腦玩家的喜愛,做一個(gè)簡(jiǎn)單的貪吃蛇小游戲。貪吃蛇的核心算法是如何實(shí)現(xiàn)蛇的移動(dòng)和吃掉食物后如何變成新的蛇體。沒有碰到食物的時(shí)候,把當(dāng)前運(yùn)動(dòng)方向上的下個(gè)節(jié)點(diǎn)入隊(duì),并以蛇節(jié)點(diǎn)的顏色繪制這個(gè)節(jié)點(diǎn),然后把頭指針?biāo)傅墓?jié)點(diǎn)出隊(duì),并以游戲框架內(nèi)部背風(fēng)光重繪出隊(duì)的節(jié)點(diǎn),這樣就可以到達(dá)移動(dòng)的效果。而在吃到食物的時(shí)候,則只需把食物入隊(duì)即可。實(shí)現(xiàn)貪吃蛇的根本的蛇身移動(dòng)、吃到食物身體增長(zhǎng)、和碰到墻壁或自身死亡,能夠暫停和開場(chǎng)。玩家可以根據(jù)自己的水平選擇不同的級(jí)別進(jìn)展游戲挑戰(zhàn)。貪吃蛇游戲中定義如下:1) 空白區(qū)域〔Lawn〕:定義的區(qū)域是貪吃蛇游戲的場(chǎng)地。豆、石頭和蛇只能存在于空白區(qū)域的范圍之內(nèi)。根據(jù)個(gè)人愛好還可以添加背景,改變區(qū)域的大小和顏色。2) 蛇〔Snake〕:在貪吃蛇游戲中,蛇由假設(shè)干節(jié)組成,其中第一節(jié)是蛇頭,在蛇頭上面定義兩個(gè)點(diǎn),作為蛇的眼睛,其余是蛇身。在游戲過程中,有且僅有一條蛇,并且蛇在不停地移動(dòng)。如果蛇吃了豆,則蛇生長(zhǎng)一節(jié)。如果蛇頭碰到蛇身,蛇死亡,游戲完畢。如果蛇頭離開所定義的區(qū)域,則蛇死亡游戲完畢。當(dāng)蛇頭撞到定義的石塊上的時(shí)候游戲完畢。在定義蛇的時(shí)候可以改變蛇的初始長(zhǎng)度,也可以改變蛇的顏色和大小。3) 豆〔Bean〕:在貪吃蛇游戲中,豆是蛇的食物。在游戲過程中,有且僅有一顆豆。如果蛇吃了豆,則重新生成一顆豆。豆的出現(xiàn)是隨機(jī)性的。4〕石塊〔stone〕:游戲中石塊和豆是同時(shí)出現(xiàn)的,不同的是,豆是隨機(jī)產(chǎn)生的,而石塊是固定的,它的坐標(biāo)在寫代碼的時(shí)候就定義好了,不能夠改變。它的大小和顏色也可以隨便的改變。5〕菜單〔MenuStrip〕:在貪吃蛇游戲中有游戲菜單,里面有開局、暫停、繼續(xù)、加速、減速、幫助等菜單。還有Label控件,顯示速度、時(shí)間、日期和積分的。五.設(shè)計(jì)說明Snake的每一節(jié)都有位置和大小等屬性。而Bean和stone也具有這兩個(gè)屬性。抽象出這三者的共同特征,抽象出一般類Block,用于描述一個(gè)塊。Block派生出Bean和SnakeBlock兩個(gè)類,其中SnakeBlock類用于描述蛇的一節(jié)。為了使游戲的運(yùn)行更易于控制,定義Game類用于啟動(dòng)、暫停和繼續(xù)游戲。根據(jù)需求分析可知,Lawn僅包含大小和顏色兩個(gè)屬性。為了減少類的數(shù)量,可將其大小和顏色等屬性添加到Game類中。綜上所述,在貪吃蛇游戲中,有Block〔塊〕、Bean〔豆〕、SankeBlock〔節(jié)〕、Snake〔蛇〕、Game〔游戲〕和MainForm〔用戶接口〕六個(gè)類。游戲邏輯構(gòu)思圖如下:定義空白區(qū)域定義空白區(qū)域游戲開場(chǎng)游戲開場(chǎng)生成石塊生成石塊生成豆生成蛇生成豆生成蛇重新開局重新開局吃到蛇身增加豆蛇身增加增加級(jí)別增加級(jí)別統(tǒng)計(jì)分?jǐn)?shù)石塊統(tǒng)計(jì)分?jǐn)?shù)石塊碰到石壁碰到石壁游戲完畢游戲完畢游戲的設(shè)計(jì)如下:游戲圖標(biāo)及名稱游戲圖標(biāo)及名稱豆子豆子成績(jī)顯示速度顯示成績(jī)顯示速度顯示游戲菜單蛇身級(jí)別顯示石塊蛇身級(jí)別顯示石塊游戲的定游戲的定義區(qū)域日期及時(shí)間顯示六.源代碼usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Te*t;usingSystem.Windows.Forms;namespaceWindowsFormsApplication1{publicpartialclassMainForm:Form{inta=200;//定義初速度為200privateGamegame;//DateTimec;publicMainForm(){InitializeComponent();game=newGame(lawn.Width,lawn.Height);timer1.Enabled=true;timer1.Interval=a;timer1.Enabled=false;Velocity.Te*t=a.ToString();}Block是用來(lái)構(gòu)成Bean〔豆〕和Snake〔蛇〕還有Stone〔石塊〕的最根本的單位,是Bean和SnakeBlock的基類。Block類的參考代碼如下。classBlock{protectedPointorigion;//Block的左上頂點(diǎn)publicconstintWIDTH=10;//Block的寬度publicconstintHEIGHT=10;//Block的高度protectedColorcolor;//Block的顏色publicBlock(){origion=newPoint(0,0);color=newColor();}publicBlock(int*,inty,Color_color){origion=newPoint(*,y);color=_color;}publicPointOrigion{get{returnorigion;}}publicvoidDisplay(Graphicsg){SolidBrushbrush=newSolidBrush(color);g.FillRectangle(brush,origion.*,origion.Y,WIDTH,HEIGHT);Penpen=newPen(Color.Black);g.DrawRectangle(pen,newRectangle(origion.*,origion.Y,WIDTH-1,HEIGHT-1));}publicvoidClear(Graphicsg,ColorbackGroundColor){SolidBrushbrush=newSolidBrush(backGroundColor);g.FillRectangle(brush,origion.*,origion.Y,WIDTH,HEIGHT);}}這是對(duì)豆的定義,是由Block派生而來(lái)的,在系統(tǒng)開場(chǎng)時(shí),使豆產(chǎn)生,它的出現(xiàn)位置為隨機(jī)生成。其代碼如下:classBean:Block{publicstaticintf=0;//吃到豆子的個(gè)數(shù)publicBean(Color_color){origion=newPoint(0,0);color=_color;}publicvoidCreat(Graphicsg,ColorbackGroundColor,intlawnWidth,intlawnHeight,Snakesnake){Clear(g,backGroundColor);boolbGetAPosition=false;//是否找到生成豆的位置Randomrandom=newRandom();while(!bGetAPosition){origion.*=random.Ne*t(0,lawnWidth-1)/WIDTH*WIDTH;origion.Y=random.Ne*t(0,lawnHeight-1)/HEIGHT*HEIGHT;inti;for(i=0;i<snake.Length;i++){if(origion==snake.blocks[i].Origion)break;}if(i==snake.Length)bGetAPosition=true;}Display(g);f++;}newpublicvoidDisplay(Graphicsg){SolidBrushbrush=newSolidBrush(color);g.FillRectangle(brush,origion.*,origion.Y,WIDTH,HEIGHT);Penpen=newPen(Color.Black);g.DrawRectangle(pen,newRectangle(origion.*,origion.Y,WIDTH-1,HEIGHT-1));}//Display(g);}SnakeBlock表示蛇的一節(jié),是由Block派生而來(lái)的。它組成蛇身,其代碼如下所示:classSnakeBlock:Block{privateboolisHead;publicboolIsHead{get{returnisHead;}}publicSnakeBlock(int*,inty,Color_color,bool_isHead){origion=newPoint(*,y);color=_color;isHead=_isHead;}publicvoidChangeHeadToBody(){if(isHead)isHead=false;}publicvoidDisplay(Graphicsg,Directiondirection){base.Display(g);if(isHead){//繪制蛇眼SolidBrushbrush=newSolidBrush(Color.Black);switch(direction){caseDirection.Up:caseDirection.Down:g.FillRectangle(brush,origion.*+WIDTH/4,origion.Y+HEIGHT/2,2,2);g.FillRectangle(brush,origion.*+WIDTH/4*3,origion.Y+HEIGHT/2,2,2);break;caseDirection.Left:caseDirection.Right:g.FillRectangle(brush,origion.*+WIDTH/2,origion.Y+HEIGHT/4,2,2);g.FillRectangle(brush,origion.*+WIDTH/2,origion.Y+HEIGHT/4*3,2,2);break;}}}}控制蛇頭運(yùn)動(dòng)的方向publicenumDirection{Up,Down,Left,Right};對(duì)蛇的編碼也是由Block派生而來(lái)的,在這里面可以定義蛇的顏色和長(zhǎng)度。classSnake{publicstaticbooleatebean;privateintlength;publicDirectiondirection;privateColorcolor;publicList<SnakeBlock>blocks;privateconstintINIT_LENGTH=10;publicintLength{get{returnlength;}}publicSnake(Color_color,Direction_direction){direction=_direction;color=_color;blocks=newList<SnakeBlock>();}publicvoidCreat(Graphicsg,ColorbackGroundColor,intlawnWidth,intlawnHeight){Clear(g,backGroundColor);blocks.Clear();length=INIT_LENGTH;int*;inty;Randomrandom=newRandom();*=random.Ne*t(lawnWidth/4,lawnWidth/4*3)/Block.WIDTH*Block.WIDTH;y=random.Ne*t(lawnHeight/4-1,lawnHeight/4*3)/Block.HEIGHT*Block.HEIGHT;blocks.Add(newSnakeBlock(*,y,color,true));蛇運(yùn)動(dòng)的方向控制switch(direction){caseDirection.Up:for(inti=1;i<length;i++){blocks.Add(newSnakeBlock(*,y+Block.HEIGHT*i,color,false));}break;caseDirection.Down:for(inti=1;i<length;i++){blocks.Add(newSnakeBlock(*,y-Block.HEIGHT*i,color,false));}break;caseDirection.Left:for(inti=1;i<length;i++){blocks.Add(newSnakeBlock(*+Block.WIDTH*i,y,color,false));}break;caseDirection.Right:for(inti=1;i<length;i++){blocks.Add(newSnakeBlock(*-Block.WIDTH*i,y,color,false));}break;}Display(g);}publicvoidGrow(){int*=2*blocks[blocks.Count-1].Origion.*-blocks[blocks.Count-2].Origion.*;inty=2*blocks[blocks.Count-1].Origion.Y-blocks[blocks.Count-2].Origion.Y;blocks.Insert(length,newSnakeBlock(*,y,color,false));length++;}publicvoidMove(){int*=0;inty=0;blocks[0].ChangeHeadToBody();switch(direction){caseDirection.Up:*=blocks[0].Origion.*;y=blocks[0].Origion.Y-Block.HEIGHT;break;caseDirection.Down:*=blocks[0].Origion.*;y=blocks[0].Origion.Y+Block.HEIGHT;break;caseDirection.Left:*=blocks[0].Origion.*-Block.WIDTH;y=blocks[0].Origion.Y;break;caseDirection.Right:*=blocks[0].Origion.*+Block.WIDTH;y=blocks[0].Origion.Y;break;}blocks.Insert(0,newSnakeBlock(*,y,color,true));blocks.RemoveAt(blocks.Count-1);}publicvoidDisplay(Graphicsg){for(inti=0;i<length;i++){blocks[i].Display(g,direction);}}publicvoidClear(Graphicsg,ColorbackGroundColor){for(inti=0;i<length;i++){blocks[i].Clear(g,backGroundColor);}}publicvoidRemoveAfter(Graphicsg,ColorbackGroundColor,intblockNum){for(inti=length-1;i>blockNum-1;i--){blocks[i].Clear(g,backGroundColor);blocks.RemoveAt(i);length=blockNum;}}石塊的定義定義如下,在空白區(qū)域中定義一個(gè)位置〔坐標(biāo)〕,使之固定不動(dòng),在蛇頭撞到這個(gè)坐標(biāo)的時(shí)候,參數(shù)傳到判斷蛇生死的函數(shù),時(shí)蛇死亡,游戲完畢。publicboolMeetStone(Pointorigion){if((blocks[0].Origion.*==(origion.*+40)&&blocks[0].Origion.Y==(origion.Y+40))||(blocks[0].Origion.*==(origion.*+300)&&blocks[0].Origion.Y==(origion.Y+80))||(blocks[0].Origion.*==(origion.*+150)&&blocks[0].Origion.Y==(origion.Y+200))||(blocks[0].Origion.*==(origion.*+100)&&blocks[0].Origion.Y==(origion.Y+400)))returntrue;elsereturnfalse;}當(dāng)蛇碰到一個(gè)豆時(shí),使豆成為蛇體的一局部,其顏色和大小跟蛇一樣,蛇身增加。publicboolCanEatBean(Beanbean){if(blocks[0].Origion==bean.Origion)returntrue;elsereturnfalse;}publicintCanEatSnake(){for(inti=3;i<blocks.Count;i++){if(blocks[0].Origion==blocks[i].Origion)returni;}return0;}publicvoidEatBean(Beanbean,Graphicsg,ColorbackGroundColor,intlawnWidth,intlawnHeight){bean.Clear(g,backGroundColor);Grow();bean.Creat(g,backGroundColor,lawnWidth,lawnHeight,this);eatebean=true;}publicboolIsAlive(intlawnWidth,intlawnHeight){if(blocks[0].Origion.*<0)returnfalse;if(blocks[0].Origion.Y<0)returnfalse;if(blocks[0].Origion.*+Block.WIDTH>lawnWidth)returnfalse;if(blocks[0].Origion.Y+Block.HEIGHT>lawnHeight)returnfalse;elsereturntrue;}}Game控制游戲的運(yùn)行,負(fù)責(zé)在游戲開場(chǎng)時(shí)生成Bean、Stone和Snake,以及負(fù)責(zé)在游戲運(yùn)行中Snake的移動(dòng)、Snake的生長(zhǎng)、Bean的重生和石塊的生產(chǎn)。并隨時(shí)檢測(cè)Snake的生死狀態(tài)。Game類的參考代碼如下:classGame{Pointorigion;publicSnakesnake;publicBeanbean;publicboolisSnakeAlive;publicintlawnWidth;publicintlawnHeight;publicGame(int_lawnWidth,int_lawnHeight){Randomrandom=newRandom();int*=random.Ne*t(0,_lawnWidth-1)/Block.WIDTH*Block.WIDTH;inty=random.Ne*t(0,_lawnHeight-1)/Block.HEIGHT*Block.HEIGHT;Directiondirection=(Direction)random.Ne*t(1,4);snake=newSnake(Color.Red,direction);bean=newBean(Color.Red);isSnakeAlive=false;lawnWidth=_lawnWidth;lawnHeight=_lawnHeight;}publicvoidBegin(Graphicsg,ColorbackGroundColor,intlawnWidth,intlawnHeight){isSnakeAlive=true;snake.Clear(g,backGroundColor);snake.Creat(g,backGroundColor,lawnWidth,lawnHeight);bean.Creat(g,backGroundColor,lawnWidth,lawnHeight,snake);游戲中石塊的填充,可以根據(jù)自己制定的坐標(biāo)來(lái)固定石塊,可以改變其顏色。SolidBrushbrush=newSolidBrush(Color.DarkViolet);Penpen=newPen(Color.DarkViolet);g.FillRectangle(brush,origion.*+40,origion.Y+40,10,10);g.DrawRectangle(pen,newRectangle(origion.*+40,origion.Y+40,10,10));g.FillRectangle(brush,origion.*+300,origion.Y+80,10,10);g.DrawRectangle(pen,newRectangle(origion.*+300,origion.Y+80,10,10));g.FillRectangle(brush,origion.*+150,origion.Y+200,10,10);g.DrawRectangle(pen,newRectangle(origion.*+150,origion.Y+200,10,10));g.FillRectangle(brush,origion.*+100,origion.Y+400,10,10);g.DrawRectangle(pen,newRectangle(origion.*+100,origion.Y+400,10,10));}publicvoidOnTime(Graphicsg,ColorbackGroundColor,intlawnWidth,intlawnHeight){if(isSnakeAlive){snake.Clear(g,backGroundColor);snake.Move();snake.Display(g);bean.Display(g);if(snake.CanEatBean(bean)){bean.Clear(g,backGroundColor);snake.EatBean(bean,g,backGroundColor,lawnWidth,lawnHeight);bean.Display(g);}intblockNum=snake.CanEatSnake();if(blockNum>0){snake.RemoveAfter(g,backGroundColor,blockNum);isSnakeAlive=false;MessageBo*.Show("就算再餓也不能咬自己啊,死了吧!");}if(!snake.IsAlive(lawnWidth,lawnHeight)||snake.MeetStone(origion))isSnakeAlive=false;}}}Timer組件用于在用戶定義的時(shí)間間隔引發(fā)事件。在游戲的運(yùn)行過程中,通過時(shí)間函數(shù)可以判斷蛇的生死,蛇吃豆子的多少。還有日期的顯示,時(shí)間的顯示。統(tǒng)計(jì)蛇吃豆子的多少。當(dāng)吃夠規(guī)定的豆的時(shí)候,級(jí)別增加,游戲的速度增加,蛇運(yùn)動(dòng)速度增加。privatevoidtimer1_Tick(objectsender,EventArgse){Date.Te*t=DateTime.Today.ToLongDateString();time.Te*t=DateTime.Now.ToLongTimeString();Success.Te*t=(Bean.f*10).ToString();if(Bean.f==5){jibie.Te*t=(1+(Bean.f+1)%5).ToString();timer1.Enabled=true;timer1.Interval=100;Velocity.Te*t=(a+100).ToString();}if(Bean.f==10){jibie.Te*t=(2+(Bean.f+1)%10).ToString();timer1.Enabled=true;timer1.Interval=80;Velocity.Te*t=(a+150).ToString();}if(Bean.f==20){jibie.Te*t=(3+(Bean.f+1)%20).ToString();timer1.Enabled=true;timer1.Interval=70;Velocity.Te*t=(a+200).ToString();}if(Bean.f==30){jibie.Te*t=(3+(Bean.f+1)%30).ToString();timer1.Enabled=true;timer1.Interval=60;Velocity.Te*t=(a+250).ToString();}if(Bean.f==40){jibie.Te*t=(3+(Bean.f+1)%40).ToString();timer1.Enabled=true;timer1.Interval=50;Velocity.Te*t=(a+300).ToString();}if(Bean.f==50){MessageBo*.Show("闖關(guān)成功!");}判斷蛇的生死if(game.isSnakeAlive){Graphicsg;g=lawn.CreateGraphics();game.OnTime(g,lawn.BackColor,lawn.Width,lawn.Height);if(!game.isSnakeAlive){MessageBo*.Show("死翹翹!");jibie.Te*t=1.ToString();}}}游戲的開場(chǎng)按鈕,游戲開場(chǎng),對(duì)的數(shù)據(jù)都初始化,其中有timer函數(shù),以及級(jí)別,分?jǐn)?shù)都初始化,蛇的運(yùn)行速度也初始到原來(lái)的速度。豆的統(tǒng)計(jì)清零。privatevoidToolStripMenuItemStart_Click(objectsender,EventArgse){Graphicsg;g=lawn.CreateGraphics();game.Begin(g,lawn.BackColor,lawn.Width,lawn.Height);timer1.Enabled=true;ToolStripMenuItemPause.Enabled=true;ToolStripMenuItemContinue.Enabled=false;Bean.f=0;timer1.Interval=200;Velocity.Te*t=a.ToString();c=DateTime.Now;}privatevoidToolStripMenuItemPause_Click(objectsender,EventArgse){timer1.Enabled=false;ToolStripMenuItemPause.Enabled=false;ToolStripMenuItemContinue.Enabled=true;}privatevoidToolStripMenuItemContinue_Click(objectsender,EventArgse){timer1.Enabled=true;ToolStripMenuItemPause.Enabled=true;ToolStripMenuItemContinue.Enabled=false;}KeyDown事件。在貪吃蛇游戲中,使用"↑〞、"↓〞、"←〞和"→〞四個(gè)方向鍵改變蛇的移動(dòng)方向。KeyDown事件用于在用戶按鍵時(shí),提供改變蛇移動(dòng)方向的功能。privatevoidMainForm_KeyDown(objectsender,KeyEventArgse){if(game.snake.direction==Direction.Down||game.snake.direction==Direction.Up){switch(e.KeyCode){caseKeys.Left:game.snake.direction=Direction.Left;break;caseKeys.Right:game.snake.direction=Direction.Right;break;}}else{switch(e.KeyCode){caseK

溫馨提示

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

評(píng)論

0/150

提交評(píng)論