• 函数具体分析


    接下来我们一个一个函数来分析。

    1、main函数
    int main(int argc, char *argv[]) {
    char direction; //存储键盘按的方向
    initData(); //初始化一些数据

    //开始游戏的循环,这里是个死循环,每按一次按钮循环一次
    while(1){
    //每次循环的开始清除屏幕
    system("cls");
    //绘画地图
    drawMap(http://www.amjmh.com/v/BIBRGZ_558768/);

    //判断,当boxs的数量0时,!0为真,然后走break跳出循环(结束游戏)
    if(!boxs){
    break;
    }

    //键盘输入方向,这里使用getch,因为getch读取字符不会显示在屏幕上
    direction = getch();

    //用switch判断用户输入的方向
    switch(direction){
    case 'w':
    //按w时,调用向上移动函数
    moveUp();
    break;
    case 'a':
    //按a时,调用向左移动函数
    moveLeft();
    break;
    case 's':
    moveDown();
    break;
    case 'd':
    moveRight();
    break;
    }
    }
    //当跳出循环时,运行该语句,游戏结束
    printf("恭喜你完成游戏!※");
    return 0;
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    我大概说一下流程,循环外面没有什么特别的。initData()只是一些简单数据的初始化,不需要太在意。循环中大致流程如下:

    清除屏幕
    绘制地图
    判断游戏是否结束
    对用户按下的按钮进行反馈
    进入循环体,先清除屏幕,再绘制地图,然后再判断游戏是否结束。可能大家对这个顺序不是很理解,这里我们先不考虑判断游戏结束的问题。我们把清屏和绘制地图合在一起,简称“重绘地图”,而游戏结束的判断先不考虑,那么流程就简化为“重绘地图 + 响应用户的操作”。简单来说就是,用户按一下按钮,我改变一下地图。

  • 相关阅读:
    js秒换成天时分
    vuex
    匹配iPhoneX
    ASP 解析json
    WPF 实现多语言支持
    c# 用DotNetZip来解压/压缩文件
    WPF UI Close button
    VB 获取所有窗体菜单信息
    ASP/ASP.NET/VB6文件上传
    c# 上传图片到一个外链相册服务器
  • 原文地址:https://www.cnblogs.com/ly570/p/11661050.html
Copyright © 2020-2023  润新知