签到

05月05日
尚未签到

共有回帖数 3

    长街旧港00

    等级:
    刷新蛇身坐标,更新 地图网格属性 以及画面
       '参数:蛇头的新坐标_X,蛇头的新坐标_Y,是否增加蛇身长度(T=增加)
    Private Sub RefreshSnake(NewHead_X As Integer, NewHead_Y As Integer, blnAddLength As Boolean)
       Dim i As Integer
       Dim OldTail As thePosition '用于在更新蛇身坐标之前,保存原来的 蛇尾坐标
       
       OldTail = Snake_P1(UBound(Snake_P1)) '保存旧的蛇尾坐标
       
       picDisplay.Line (Snake_P1(0).X * MAP_SCALE, Snake_P1(0).Y * MAP_SCALE)-Step(MAP_SCALE, MAP_SCALE), P1.BodyColor, BF   '在地图上 擦除旧的的蛇头
       picDisplay.Line (NewHead_X * MAP_SCALE, NewHead_Y * MAP_SCALE)-Step(MAP_SCALE, MAP_SCALE), P1.HeadColor, BF '在地图上 绘画出新的蛇头
       
       MapProperty(NewHead_X, NewHead_Y) = MAP_SNAKE '标记蛇头新坐标下的地图格属性为 玩家蛇身
       
       '必须先更新 蛇身 除蛇头外其余部分的坐标。否则会出错
       For i = (UBound(Snake_P1)) To 1 Step -1
           Snake_P1(i) = Snake_P1(i - 1)
       Next
       
       '然后更新 蛇头的坐标
       Snake_P1(0).X = NewHead_X
       Snake_P1(0).Y = NewHead_Y
       
       '判断是否需要 增加蛇身长度
       If blnAddLength Then '增加长度
           ReDim Preserve Snake_P1(UBound(Snake_P1) + 1) '最后才设定新的 蛇尾坐标(关键字“Preserve”的作用是:保留原数组的内容)
        &nbs

    楼主 2016-07-15 09:35 回复

    长街旧港00

    等级:
    p;  Snake_P1(UBound(Snake_P1)) = OldTail '旧蛇尾的坐标不变
           P1.SnakeLength = UBound(Snake_P1) + 1 '蛇身长度 + 1
       Else '蛇身长度不变
           '如果蛇头的新坐标与旧蛇尾的坐标重合,就不用在旧蛇尾的坐标下 绘画空白地的图案(因为该网格属性已经是 蛇头,而不是空白地)
           If Not (NewHead_X = OldTail.X And NewHead_Y = OldTail.Y) Then
               MapProperty(OldTail.X, OldTail.Y) = MAP_EMPTY '在地图上把 旧蛇尾坐标 下的地图格的属性设置为 空白地
               picDisplay.Line (OldTail.X * MAP_SCALE, OldTail.Y * MAP_SCALE)-Step(MAP_SCALE, MAP_SCALE), Map_Empty_Color, BF '在地图上擦除旧蛇尾,绘画空白地
           End If
       End If
       
       tmrMove.Enabled = True
    End Sub
    '检查得分能否上榜--如果能上榜,则更新排行榜
    Public Sub CheckRecord(Score As Integer)
       Dim FileNum As Integer
       Dim pos As Integer, i As Integer, list As ListBox 'pos --排名
       Dim Name As String  '记录玩家名称
       Dim TopTen As Boolean '判断得分是否进入前十名
       Dim Ans As Integer
       
       FileNum = FreeFile
       Set list = frmScoreList.lstScore '映射到列表框 frmScoreList.lstscore
       Do
           If Score = Val(list.list(pos)) Then
     

    1楼 2016-07-15 09:35 回复

    长街旧港00

    等级:
    theRecord '记录得分在前10名的 玩家的得分和名字Option ExplicitPrivate Sub Form_Load()
       Dim FileNum As Integer, i As Integer
           
       lstPos.Clear
       For i = 1 To 10
           lstPos.AddItem i, i - 1
       Next
       
       lstScore.Clear
       
       lstName.Clear
       
       '读入得分记录
       FileNum = FreeFile
       Open App.Path & RECORD_FILE_NAME For Random As #FileNum Len = Len(Record(0))
    '    Call ScoreSort(FileNum)
       For i = 0 To 9
           Get #FileNum, , Record(i)
           lstScore.AddItem Record(i).Score, i
           lstName.AddItem Record(i).Name, i
       Next
       Close #FileNum
           
    End Sub'同步3个ListBox——Private Sub lstName_Click()
       lstPos.ListIndex = lstName.ListIndex
       lstScore.ListIndex = lstName.ListIndex
    End SubPrivate Sub lstPos_Click()
       lstScore.ListIndex = lstPos.ListIndex
       lstName.ListIndex = lstPos.ListIndex
    End SubPrivate Sub lstscore_Click()
       lstPos.ListIndex = lstScore.Lis

    2楼 2016-07-15 09:36 回复

    长街旧港00

    等级:
    tIndex
       lstName.ListIndex = lstScore.ListIndex
    End Sub《说明窗体 frmHelp 》——只需添加一个textBox,其text属性填入操作说明如下:《贪食蛇 1.1单人版(穿墙)》游戏说明(1)控制键:
      “Enter”--新游戏/中止游戏;
      “5”--暂停/恢复-(数字键盘区,NumLock状态);方向控制-(数字键盘区,NumLock状态):
      “8、2、4、6”--上、下、左、右;
      “1”--左 / 下;
      “3”--右 / 下;
      “7”--左 / 上;
      “9”--右 / 上。  ( 当蛇头和蛇身任一节重合时,游戏结束
    (2)地图:
       蓝色方格--食物 (吃进食物后,蛇身长度增加一节);
       红色方格--炸弹;
       
       淡紫色方格--蛇头;
       亮绿色长条--蛇身。
       
       闪烁的方格--奖品;
       (奖品上面的数字表示吃进奖品后 增加的分数。)
      ( 每个奖品分数的 初始值是20~50之间的随机数,当奖品出现
    后奖励的分数就会不断减少。)(3)计分方法:            
       ( 当总分  = 0 时,游戏结束)    每吃进一个食物 增加的分数等于 级别的数值;
       每吃进一个炸弹 扣掉的分数是 级别数值的2倍;    玩家起始分数等于 级别数值的 2倍再加1分。
       (例如 等级为6,则玩家起始分数是13分;每吃进一个食物加6
    分;
    每吃进一个炸弹减12分)
       游戏运行之后会在所在目录下创建一个"Record.dat"的文件,
    存放得分记录。

    3楼 2016-07-15 09:36 回复

共有回帖数 3
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知