编程高手之路-vb入门和游戏编写-VB 贪吃蛇 单人版游戏_第1页
编程高手之路-vb入门和游戏编写-VB 贪吃蛇 单人版游戏_第2页
编程高手之路-vb入门和游戏编写-VB 贪吃蛇 单人版游戏_第3页
编程高手之路-vb入门和游戏编写-VB 贪吃蛇 单人版游戏_第4页
编程高手之路-vb入门和游戏编写-VB 贪吃蛇 单人版游戏_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、拔编程高手之路懊挨vb埃入门和游戏编写敖耙VB 贪吃蛇 哎单人版游戏(二邦)按主窗体 Fr按mPlay 代胺码把Private摆 blnSta半rtGame 颁As Bool拌ean 标记疤是否已经开始 俺新游戏(T游哀戏已经开始)俺Private胺 blnPau版se As B白oolean 背标记当前是否罢处于暂停状态(柏T暂停)拔Private敖 blnThr扒oughWal叭l As Bo瓣olean 半标记是否为穿墙耙模式(T可以摆穿墙)熬Private隘 blnOnK霸eyEvent埃s As Bo八olean 隘标记是否能够 白接收键盘事件(蔼T可以接收)八,此变量可防止敖 Fo

2、rm_K皑eyDown(芭)事件重复执行胺Private啊 Map_Wi啊dth As 懊Integer盎 地图宽度(佰象素)捌Private案 Map_He皑ight As芭 Intege扳r 地图高度霸(象素)爸Private癌 Map_Em班pty_Col八or罢 地图空白伴地颜色皑Private瓣 Map_Bo蔼mb_Colo哀r 地图炸佰弹颜色扮Private爸 Map_Fo斑od_Colo埃r 地图食袄物颜色摆Private胺 MapPro袄perty()皑 As Int佰eger 记搬录地图各个网格罢的属性隘Private瓣 curEat岸Count A哀s Integ艾er 记

3、录 疤每次出现奖品之班前,一共吃进多隘少物品(包括食岸物和炸弹,奖品瓣不计),当奖品搬出现后,此变量把值变为 零0蔼,然后进入下背一次统计扒Private袄 curLev鞍el As I拌nteger 办当前级别暗Priva邦te P1 A案s thePl绊ayerInf翱o 记录Pl败ayer1 的癌信息办Private柏 Snake_爱P1() As啊 thePos班ition 摆记录蛇身坐标版Private俺 PrizeP芭os As t胺hePosit瓣ion 记录奥奖品的坐标懊Private澳 Record稗(9) As 艾theReco疤rd 存放前巴十名的 得分记熬录信息隘Opt

4、ion 皑Explici绊t澳Private癌 Sub cm鞍dHelp_C败lick()吧 If 绊blnPaus澳e = Fal爸se Then盎 Call F疤orm_Key癌Dow埃n(KEY_P蔼AUSE, 0罢) 如果游戏绊正在进行,则发摆送“暂停”按键鞍事件,暂停游戏扳 frm碍Help.Sh袄ow瓣 颁End Sub隘开始新游戏佰Private瓣 Sub 艾cmdNewG埃ame_Cli瓣ck()哎 Dim把 i As I坝nteger哎 笆 Ran半domize 唉重新生成随机癌数列安 芭 bln扮StartGa翱me = No肮t blnSt岸artGame案 If 阿bl

5、nStar唉tGame T岸hen埃靶 cmdNew肮Game.Ca瓣ption =鞍 暗停止奥 Els搬e傲唉 cmdNew拌Game.Ca安ption =伴 新游戏扒 End盎 If捌 氨 啊 中止暗游戏伴 If 跋blnStar叭tGame =挨 False 哀Then八哎 如果上一次唉的奖品还没有消哎失(以 Pri敖zeRemai唉n 0 为按标志),就先清皑除旧的奖品,然办后才显示新的奖般品耙熬 If Pri傲zeRemai暗n 0 T耙hen Cal拌l ShowP邦rize(Fa蔼lse)耙唉 picDis摆play.Cl艾s把扳 奥癌 P1.Sco跋re = 0 班玩家的初始分

6、碍数安瓣 P1.Foo背d = 0矮绊 P1.Bom矮b = 0皑半 curEat瓣Count =翱 0疤邦 PrizeR搬emain =蔼 0矮班 blnPau坝se = Fa癌lse傲癌 lblPau稗se.Visi癌ble = F按alse隘佰 lblSco蔼re.Capt挨ion = P吧1.Score败疤 lblFoo绊dCount.懊Caption笆 = P1.F昂o邦od斑搬 lblBom哀bCount.昂Caption唉 = P1.B爱omb靶矮 P1.bln板GameOve班r = Tru班e颁鞍 HscrLe矮vel.Ena拔bled = 绊True哀埃 tmrMov盎e.

7、Enabl捌ed = Fa氨lse摆班 Exit S安ub胺 End氨 If暗 疤 bln唉Through暗Wall = 凹True 穿稗墙模式罢 bln肮OnKeyEv暗ents = 翱True靶 隘 暂时懊使用默认填充色懊 Map暗_肮Bomb_Co邦lor = B背OMB_COL办OR傲 Map按_Empty_拜Color =肮 EMPTY_把COLOR安 Map斑_Food_C案olor = 邦FOOD_CO案LOR哎 P1.氨BodyCol白or = BO吧DY_COLO吧R靶 P1.颁HeadCol澳or = HE颁AD_COLO斑R拜 暗 地图澳初始化拌 ReD扮im MapP拔

8、roperty肮(MAX_CO搬L_INDEX耙, MAX_R芭OW_INDE叭X)斑 Map啊_Width 伴= (MAX_班COL_IND百EX + 1)板 * 傲MAP_SCA吧LE癌 Map艾_Height八 = (MAX瓣_ROW_IN拜DEX + 1碍) * MAP岸_SCALE隘 pic叭Display按.Cls唉 pic百Display搬.Width 拜= Map_W啊idth + 板2安 pic绊Display坝.Height摆 = Map_蔼Height 盎+ 2瓣 pic般Display伴.Line (哎0, 0)-S氨tep(Map捌_Width,板 Map_He啊ig

9、ht), 拜Map_Emp爸ty_Colo拔r, BF暗耙 斑 Foo坝dCount_捌AtOneTi傲me = 2 八把地图上同时存在柏的 食物数量坝 Bom佰bCount_捌AtOneTi熬me = 1 巴地图上同时存啊在的 炸弹数量扒 稗 Eat班CountPe扒rShowPr八ize = 5背 设置 蛇每拜吃进多少物品(佰包括食物和炸弹瓣,奖品不计)才爱显示一次奖品傲 隘 cur白Level =版 HscrLe版vel.Val矮ue背 Add八ScorePe皑rFood =熬 curLev拜el 每吃进扒一个 食物,所霸增加的分数当阿前的级别值澳 Add爱ScorePe百rBomb =

10、扮 -curLe唉vel * 2板 每吃进一个阿 炸弹,所扣掉昂的分数俺拌 敖 P1.败Score =艾 Abs(Ad拜dScoreP氨erBomb)罢 + 1 玩耙家的初始分数袄每吃进一个 胺炸弹,所扣掉的案分数1叭 P1.板Food = 百0昂 P1.靶Bomb = 百0把 Pri扒zeRemai白n = 0班 P1.拌blnGame般Over = 八False半 lbl按Score.C佰aption 罢= P1.Sc袄ore矮 lbl安FoodCou芭nt.Capt拌ion = P挨1.Food袄 lbl氨BombCou扒nt.Cap颁tion = 把P1.Bomb阿 稗 初始爱化P1蛇

11、身爸 ReD盎im Snak鞍e_P1(ST绊ART_SNA白KE_LENG伴TH)熬 For案 i = 0 氨To UBou哀nd(Snak扒e_P1)安胺 设定蛇身各肮段的起始位置巴俺 Snake_背P1(i).X熬 = MAX_俺COL_IND澳EX - UB班ound(Sn哀ake_P1)把 + i扒芭 Snake_巴P1(i).Y耙 = MAX_柏ROW_IND扮EX伴白 初始化移动绊方向伴哀 P1.X_安Way = -傲1拜半 P1.Y_W把ay = 0绊癌 MapPro氨perty(S氨nake_P1扳(i).X, 办Snake_P熬1(i).Y)靶 = MAP_埃SNAKE拌熬

12、 picDis稗play.Li案ne (Sna背ke_P1(i柏).X * M暗AP_SCAL拌E, Snak败e_P1(i)绊.Y * MA拌P_SCALE肮)-Step(扮MAP_SCA扒LE, MAP叭_SCALE)傲, BODY_伴COLOR, 懊BF跋 Nex版t凹 使用捌蛇头颜色 重新把绘画蛇头稗 pic爸Display安.Line (碍Snake_P哎1(0).X 邦* MAP_S敖CALE, S澳nake_P1熬(0).Y *板 MAP_SC吧ALE)-St隘ep(MAP_袄SCALE, 盎MAP_SCA靶LE), HE傲AD_COLO吧R, BF绊 拔 版 放置翱食物百 Fo

13、r胺 i = 1 鞍To Food岸Count_A岸tOneTim鞍e鞍袄 Call A佰ddFood芭 Nex疤t皑 拜 放置癌炸弹拌 For袄 i = 1 氨To Bomb安Count_A捌tOneTim耙e凹耙 Call A跋ddBomb哀 Nex败t拜 把 lbl癌Pause.V扳isible 盎= False凹 lbl扮Score.C巴aption 翱= P1.Sc版ore拔 lbl把FoodCou敖nt.Capt胺ion = P芭1.Food背 lbl斑BombCou背nt.Capt芭ion = P靶1.Bomb半 碍 P1.半blnGame百Over = 按False般 Hsc肮

14、rLevel.芭Enabled澳 = Fals拜e 游戏进行靶期间不能改变级板别搬 tmr耙Move.En疤abled =罢 True隘End Sub案显示得分榜耙Private版 Sub 昂cmdShow隘ScoreLi靶st_Clic碍k()伴 If 傲blnPaus班e = Fal把se Then跋 Call F版orm_Key疤Down(KE吧Y_PAUSE颁, 0) 如罢果游戏正在进行啊,则发送“暂停澳”按键事件,暂安停游戏罢 frm哎ScoreLi扳st.Show埃 把End Sub傲Private扮 Sub 耙Form_Ke八yDown(K颁eyCode 敖As Inte唉ger

15、, Sh艾ift As 扮Integer矮)捌 奥 If 扳P1.blnG绊ameOver芭 Or bln背StartGa柏me = Fa皑lse Or 拜blnOnKe啊yEvents蔼 = Fals扒e Then 哎Exit Su耙b 以下情况阿(游戏结束、游拌戏还没有开始、拜禁用击键事件)按不接收按键操作白。斑 巴 按“熬Numpad 霸5”键暂停罢/继续蔼 If 佰KeyCode熬 = KEY_癌PAUSE T背hen唉拌 blnPau捌se = No安t blnPa俺use爸罢 lblPau板se.Visi盎ble = b巴lnPause耙艾 tmrMov案e.Enabl搬ed =

16、No绊t blnPa暗use笆坝 Exit S背ub霸 End般 If奥 邦 If 把blnPaus癌e Then 敖Exit Su艾b 在暂停状哀态下不接受“E柏SC”外的其它肮按键阿 把 Sel颁ect Cas翱e KeyCo拔de绊翱 Case K阿EY_LFUP白把 bl爸nOnKeyE佰vents =鞍 False安肮 If扮 P1.X_W伴ay 0吧 Then摆敖懊 P1.X_拜Way = 0背绊熬 P1.Y_坝Way = -版1颁俺 El伴seIf P1胺.Y_Way 盎 0 Th把en八斑瓣 P1.X_挨Way = -安1盎白耙 P1.Y_办Way = 0袄邦 En把d If安

17、唉 Case K颁EY_LFDN捌凹 bl胺nOnKeyE懊vents =奥 False肮般 If班 P1.X_W疤ay 0拌 Then靶伴罢 P1.X_啊Way = 0邦皑跋 P1.Y_案Way = 1办暗 El哀seIf P1稗.Y_Way 按 0 Th氨en半碍罢 P1.X_岸Way = -拔1八板绊 P1.Y_疤Way = 0八板 En氨d If阿版 坝巴 Case K斑EY_RTUP板百 bl案nOnKeyE奥vents =胺 False颁案 If俺 P1.X_W绊ay 0吧 Then扒隘耙 P1.X_翱Way = 0盎巴案 P1.Y_肮Way = -哎1板耙 El爸seIf P1暗

18、.Y_Way 鞍 0 Th阿en鞍吧肮 P1.X_氨Way = 1哎癌稗 P1.Y_艾Way = 0扮芭 En蔼d If班吧 Case K暗EY_RTDN安八 bl拌nOnKeyE按vents =斑 False哎背 If败 P1.X_W挨ay 0爱 Then奥哀背 P1.X_奥Way = 0百爸盎 P1.Y_扳Way = 1皑瓣 El八seIf P1唉.Y_Way 扳 0 Th矮en安肮疤 P1.X_隘Way = 1熬懊吧 P1.Y_邦Way = 0熬案 En捌d If跋肮 啊 当蛇皑以 水平 方向胺移动时,LF 办和 RT 按键摆无效拔艾 Case K凹EY_LF胺奥 bl盎nOnKeyE盎vents =暗 False拌耙 If稗 P1.X_W扮ay

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论