![编程高手之路—vb入门和游戏编写—VB贪吃蛇单人版游戏(二)_第1页](http://file4.renrendoc.com/view/51088a71cf42f295b0c8891559d6137e/51088a71cf42f295b0c8891559d6137e1.gif)
![编程高手之路—vb入门和游戏编写—VB贪吃蛇单人版游戏(二)_第2页](http://file4.renrendoc.com/view/51088a71cf42f295b0c8891559d6137e/51088a71cf42f295b0c8891559d6137e2.gif)
![编程高手之路—vb入门和游戏编写—VB贪吃蛇单人版游戏(二)_第3页](http://file4.renrendoc.com/view/51088a71cf42f295b0c8891559d6137e/51088a71cf42f295b0c8891559d6137e3.gif)
![编程高手之路—vb入门和游戏编写—VB贪吃蛇单人版游戏(二)_第4页](http://file4.renrendoc.com/view/51088a71cf42f295b0c8891559d6137e/51088a71cf42f295b0c8891559d6137e4.gif)
![编程高手之路—vb入门和游戏编写—VB贪吃蛇单人版游戏(二)_第5页](http://file4.renrendoc.com/view/51088a71cf42f295b0c8891559d6137e/51088a71cf42f295b0c8891559d6137e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编程身手之路一vb入门和游戏编写一VB贪吃蛇单人版游戏(二)程程高手之路一vb入门和游又编写一VB贪吃蛇单人版游戏(二)主窗体FrmPlay代码PrivateblnStartGameAsBoolean标记是否已经开始新游戏(T=游戏已经开始)PrivateblnPauseAsBoolean标记当前是否处于暂停状态(T=暂停)PrivateblnThroughWallAsBoolean标记是否为穿墙模式(T=可以穿墙)PrivateblnOnKeyEventsAsBoolean标记是否能够接收键盘事件(T=可以接收),此变量可防止Form_KeyDown()事件重复执行PrivateMap_Wi
2、dthAsInteger地图宽度(象素)PrivateMap_HeightAsInteger地图高度(象素)PrivateMap_Empty_C010r地图空白地颜色PrivateMap_Bomb_C010r地图炸弹颜色PrivateMap_Food_C010r地图食物颜色PrivateMapProperty()AsInteger记录地图各个网格的属性PrivatecurEatCountAsInteger记录每次出现奖品之前,一共吃进多少物品(包括食物和炸弹,奖品不计),当奖品出现后,此变量值变为零0,然后进入下一次统计PrivatecurLevelAsInteger当前级别PrivateP1
3、AsthePlayerInfo记录Player1的信息PrivateSnake_P1()AsthePosition记录蛇身坐标PrivatePrizePosAsthePosition记录奖品的坐标PrivateRecord(9)AstheRecord存放前十名的得分记录信息OptionExplicitPrivateSubcmdHelp_Click()IfblnPause=FalseThenCallForm_KeyDown(KEY_PAUSE,0)如果游戏正在进行,贝1J发送暂停按键事件,暂停游戏frmHelp.ShowEndSub开始新游戏PrivateSubcmdNewGame_Click(
4、)DimiAsIntegerRandomize重新生成随机数列blnStartGame=NotblnStartGameIfblnStartGameThencmdNewGame.Caption=停止ElsecmdNewGame.Caption=新游戏EndIf中止游戏IfblnStartGame=FalseThen如果上一次的奖品还没有消失(以PrizeRemain0为标志),就先清除旧的奖品,然后才显示新的奖品IfPrizeRemain0ThenCallShowPrize(False)picDisplay.ClsP1.Score=0玩家的初始分数P1.Food=0P1.Bomb=0curEat
5、Count=0PrizeRemain=0blnPause=FalselblPause.Visible=FalselblScore.Caption=P1.ScorelblFoodCount.Caption=P1.FoodlblBombCount.Caption=P1.BombP1.blnGameOver=TrueHscrLevel.Enabled=TruetmrMove.Enabled=FalseEndIfblnThroughWall=True穿墙模式blnOnKeyEvents=True暂时使用默认填充色Map_Bomb_Color=BOMB_COLORMap_Empty_Color=EMPT
6、Y_COLORMap_Food_Color=FOOD_COLORP1.BodyColor=BODY_COLORP1.HeadColor=HEAD_COLOR地图初始化ReDimMapProperty(MAX_COL_INDEX,MAX_ROW_INDEX)Map_Width=(MAX_COL_INDEX+1)*MAP_SCALEMap_Height=(MAX_ROW_INDEX+1)*MAP_SCALEpicDisplay.ClspicDisplay.Width=Map_Width+2picDisplay.Height=Map_Height+2picDisplay.Line(0,0)-Step
7、(Map_Width,Map_Height),Map_Empty_Color,BFFoodCount_AtOneTime=2地图上同时存在的食物数量BombCount_AtOneTime=1地图上同时存在的炸弹数量EatCountPerShowPrize=5设置蛇每吃进多少物品(包括食物和炸弹,奖品不计)才显示一次奖品curLevel=HscrLevel.ValueAddScorePerFood=curLevel每吃进一个食物,所增加的分数=当前的级别值AddScorePerBomb=-curLevel*2每吃进一个炸弹,所扣掉的分数P1.Score=Abs(AddScorePerBomb)+
8、1玩家的初始分数=每吃进一个炸弹,所扣掉的分数十P1.Food=0P1.Bomb=0PrizeRemain=0P1.blnGameOver=FalselblScore.Caption=P1.ScorelblFoodCount.Caption=P1.FoodlblBombCount.Caption=P1.Bomb初始化P1蛇身ReDimSnake_P1(START_SNAKE_LENGTH)Fori=0ToUBound(Snake_P1)设定蛇身各段的起始位置Snake_P1(i).X=MAX_COL_INDEX-UBound(Snake_P1)+iSnake_P1(i).Y=MAX_ROW_I
9、NDEX初始化移动方向P1.X_Way=-1P1.Y_Way=0MapProperty(Snake_P1(i).X,Snake_P1(i).Y)=MAP_SNAKEpicDisplay.Line(Snake_P1(i).X*MAP_SCALE,Snake_P1(i).Y*MAP_SCALE)-Step(MAP_SCALE,MAP_SCALE),BODY_COLOR,BFNext使用蛇头颜色重新绘画蛇头picDisplay.Line(Snake_P1(0).X*MAP_SCALE,Snake_P1(0).Y*MAP_SCALE)-Step(MAP_SCALE,MAP_SCALE),HEAD_CO
10、LOR,BF放置食物Fori=1ToFoodCount_AtOneTimeCallAddFoodNext放置炸弹Fori=1ToBombCount_AtOneTimeCallAddBombNextlblPause.Visible=FalselblScore.Caption=P1.ScorelblFoodCount.Caption=P1.FoodlblBombCount.Caption=P1.BombP1.blnGameOver=FalseHscrLevel.Enabled=False游戏进行期间不能改变级别tmrMove.Enabled=TrueEndSub显示得分榜PrivateSubcmd
11、ShowScoreList_Click()IfblnPause=FalseThenCallForm_KeyDown(KEY_PAUSE,0)如果游戏正在进行,贝1J发送暂停按键事件,暂停游戏frmScoreList.ShowEndSubPrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfP1.blnGameOverOrblnStartGame=FalseOrblnOnKeyEvents=FalseThenExitSub以下情况(游戏结束、游戏还没有开始、禁用击键事件)不接收按键操作。按Numpad5”键-暂停/继续IfKeyCode
12、=KEY_PAUSEThenblnPause=NotblnPauselblPause.Visible=blnPausetmrMove.Enabled=NotblnPauseExitSub“ESC外的其它按键EndIfIfblnPauseThenExitSub在暂停状态下不接受SelectCaseKeyCodeCaseKEY_LFUPblnOnKeyEvents=FalseIfP1.X_Way0ThenP1.X_Way=0P1.Y_Way=-1ElseIfP1.Y_Way0ThenP1.X_Way=-1P1.Y_Way=0EndIfCaseKEY_LFDNblnOnKeyEvents=False
13、IfP1.X_Way0ThenP1.X_Way=0P1.Y_Way=1ElseIfP1.Y_Way0ThenP1.X_Way=-1P1.Y_Way=0EndIfCaseKEY_RTUPblnOnKeyEvents=FalseIfP1.X_Way0ThenP1.X_Way=0P1.Y_Way=-1ElseIfP1.Y_Way0ThenP1.X_Way=1P1.Y_Way=0EndIfCaseKEY_RTDNblnOnKeyEvents=FalseIfP1.X_Way0ThenP1.X_Way=0P1.Y_WayElselfP1.Y_Way0ThenP1.X_Way=1P1.Y_Way=0EndIf当蛇以水平方向移动时,LF和RT按键无效CaseKEY_LFblnOnKeyEvents=FalseIfP1.X_Way=0ThenP1.X_Way=-1P1.Y_Way=0EndIfCaseKEY_RTblnOnKeyEvents=FalseIfP1.X_Way=0ThenP1.X_Way=1P1.Y_Way=0EndIf当蛇以垂直方向移动时,UP和DN按键无效CaseKEY_UPblnOnKeyEvents=FalseIfP1.Y_Way=0T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球离网房车行业调研及趋势分析报告
- 2025-2030全球高脉冲能量皮秒激光器行业调研及趋势分析报告
- 月龄婴儿情绪情感与社会性亲子活动设计创造性抚触游戏讲解
- 2025【合同范本】建筑工程设计协议书
- 蔬菜配送合作合同范本
- 分期付款合同模板集锦
- 会签单合同模板
- 全新对讲机服务合同下载
- 劳务出资合伙协议合同
- 个人租车租赁合同范本
- 2019版新人教版高中英语必修+选择性必修共7册词汇表汇总(带音标)
- 初中八年级音乐-劳动号子《军民大生产》
- 中层领导的高绩效管理
- 小小银行家-儿童银行知识、理财知识培训
- 机械基础知识竞赛题库附答案(100题)
- 2022年上学期八年级期末考试数学试卷
- 阅读理解特训卷-英语四年级上册译林版三起含答案
- 国库集中支付培训班资料-国库集中支付制度及业务操作教学课件
- 屋面及防水工程施工(第二版)PPT完整全套教学课件
- 2023年上海青浦区区管企业统一招考聘用笔试题库含答案解析
- 2023年高一物理期末考试卷(人教版)
评论
0/150
提交评论