跑酷天堂C++小黑框版

上:跳跃

左右:行走

#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>

using namespace std;

char mmp[1001][1001] = {"                                                                                                                                                                                                        ",
                        "                                                                                                                                                                                                        ",
                        "                                                                                   ###                            #  #  #  #  #  #  #  ###         ####                              ###                ",
                        "                                                                                                             ##                              ####          ###  # # # #  ###     ##                      ",
                        "                                                                 ##         #####         ####                                                                                             ###          ",
                        "                                                                       ##                              ##                                                                                               ",
                        "                                                                                                ####                                                                                                    ",
                        "                                                                                                                                                                                               ###      ",
                        "                                                            ##                                                                                                                                          ",
                        "                                                                                                                                                                                                    ####",
                        "                                                                                                                                                                                                        ",
                        "                                      ##              ###                                                                                                                                               ",
                        "                          ##                   ####                                                                                                                                                     ",
                        "                  ###           ####                                                                                                                                                                    ",
                        "         ###                             ##                                                                                                                                                             ",
                        "                                                                                                                                                                                                        ",
                        "  O                                                                                                                                                                                                     ",
                        "#####                                                                                                                                                                                                   ",
                        "#####                                                                                                                                                                                                   ",
                        "#####                                                                                                                                                                                                   "
                       };//20 * 200;

char putmmp[20][16];

int jump[20] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, -1, 0, -1, 0, -1, 0, -1};

int main() {

    char ch;
    
    bool t = 1;

    int x = 16, y = 2, delayjump = 0;

    while (1) {

        Sleep(25);

        if (y - 7 < 0) {

            for (register int i = 0; i < 20; i++) {

                for (register int j = 0; j < 15; j++) {

                    putmmp[i][j] = mmp[i][j];

                }

                putmmp[i][15] = '\n';

            }

        } else if (y + 7 > 199) {

            for (register int i = 0; i < 20; i++) {

                int k = 14;

                for (register int j = 199; j >= 85; j--, k--) {

                    putmmp[i][k] = mmp[i][j];

                }

                putmmp[i][15] = '\n';

            }

        } else {

            for (register int i = 0; i < 20; i++) {

                int k = 0;

                for (register int j = y - 7; j <= y + 7; j++, k++) {

                    putmmp[i][k] = mmp[i][j];

                }

                putmmp[i][15] = '\n';

            }

        }

        system("cls");

        fwrite(putmmp, 1, 20 * 16, stdout);
        printf("%d %d\n", x, y);

        if (delayjump > 0) {

            if (delayjump > 8 && (x + jump[delayjump] == -1 || mmp[x + jump[delayjump]][y] == '#')) {

                delayjump = 5;

            } else {
                
                if (delayjump <= 8 && x + jump[delayjump] == 19) {
                    
                    mmp[x][y] = ' ';
                    x = 16, y = 2;
                    mmp[x][y] = 'O';
                    
                }
                
                if (delayjump <= 8 && (x + jump[delayjump] == 20 || mmp[x + jump[delayjump]][y] == '#')) {

                    delayjump = 0;

                } else {

                    mmp[x][y] = ' ';
                    x += jump[delayjump];
                    mmp[x][y] = 'O';
                    delayjump--;

                }

            }


        }
        
        if (!delayjump) {
            
            if (x + 1 == 20) {
                
                mmp[x][y] = ' ';
                x = 16, y = 2;
                mmp[x][y] = 'O';
                
            }
            
            if (mmp[x + 1][y] == ' ' && x < 19 && t) {
                
                t = !t;
                mmp[x][y] = ' ';
                x++;
                mmp[x][y] = 'O';
                
            } else {
                
                t = !t;
                
            }
            
        }

        if (kbhit()) {

            ch = getch();

            switch(ch) {

                case 27 :

                    exit(0);

                    break;

                case -32 :

                    ch = getch();

                    switch(ch) {

                        case 75 :

                            if (y > 0 && mmp[x][y - 1] == ' ') {

                                mmp[x][y] = ' ';
                                y--;
                                mmp[x][y] = 'O';

                            }

                            break;

                        case 77 :

                            if (y < 199 && mmp[x][y + 1] == ' ') {

                                mmp[x][y] = ' ';
                                y++;
                                mmp[x][y] = 'O';

                            }

                            break;

                        case 72 :

                            if (!delayjump && mmp[x + 1][y] == '#') {

                                delayjump = 18;

                            }

                            break;

                    }

                    break;

            }

        }

    }

    return 0;

}

 

转载请注明©Ice_watermelon233

转载于:https://www.cnblogs.com/Ice-watermelon233/p/ParkourGame_C_with_class.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值