以下是一个简单的用C++ 5.11编写的基于WSAD和空格键操作的坦克大战游戏的示例代码:

#include <iostream>
#include <conio.h>

using namespace std;

const int WIDTH = 20; // 游戏地图宽度
const int HEIGHT = 10; // 游戏地图高度

int tankX, tankY; // 坦克的位置

char map[HEIGHT][WIDTH]; // 游戏地图

void InitializeMap() {
    for (int i = 0; i < HEIGHT; i++) {
        for (int j = 0; j < WIDTH; j++) {
            map[i][j] = '.';
        }
    }
}

void DrawMap() {
    system("cls");
    for (int i = 0; i < HEIGHT; i++) {
        for (int j = 0; j < WIDTH; j++) {
            if (i == tankY && j == tankX) {
                cout << "T";
            } else {
                cout << map[i][j];
            }
        }
        cout << endl;
    }
}

void MoveTank(char direction) {
    switch (direction) {
        case 'w':
            if (tankY > 0) {
                tankY--;
            }
            break;
        case 's':
            if (tankY < HEIGHT - 1) {
                tankY++;
            }
            break;
        case 'a':
            if (tankX > 0) {
                tankX--;
            }
            break;
        case 'd':
            if (tankX < WIDTH - 1) {
                tankX++;
            }
            break;
        case ' ':
            // 发射子弹的逻辑
            break;
    }
}

int main() {
    InitializeMap();
    tankX = WIDTH / 2; // 初始化坦克的位置
    tankY = HEIGHT / 2;

    while (true) {
        DrawMap();

        // 获取用户输入
        char input = _getch();

        // 移动坦克或发射子弹
        MoveTank(input);
    }

    return 0;
}

这个示例代码使用了一个二维数组来表示游戏地图,'.'字符表示空地,'T'字符表示坦克。玩家可以使用WSAD键来移动坦克,按下空格键可以发射子弹(你可以添加更多的逻辑来实现子弹的移动和碰撞检测等)。每次循环都会先绘制游戏地图,然后获取用户的输入,并根据输入来移动坦克或发射子弹。游戏循环会一直运行,直到玩家退出游戏。

请注意,这只是一个简单的示例,实际的游戏逻辑和功能可能会更复杂。你可以根据自己的需求对代码进行修改和扩展


原文地址: https://www.cveoy.top/t/topic/hTDd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录