以下是一个使用C++实现的简单的人机枪战二维游戏的代码示例,支持使用WSAD键控制玩家移动,使用空格键射击敌人。

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

const int width = 20;
const int height = 20;
int playerX, playerY;
int enemyX, enemyY;
bool gameOver;

void Setup()
{
    gameOver = false;
    playerX = width / 2;
    playerY = height - 1;
    enemyX = width / 2;
    enemyY = 0;
}

void Draw()
{
    system("cls");
    for (int i = 0; i < width + 2; i++)
        std::cout << "#";
    std::cout << std::endl;

    for (int y = 0; y < height; y++)
    {
        for (int x = 0; x < width; x++)
        {
            if (x == playerX && y == playerY)
                std::cout << "P";
            else if (x == enemyX && y == enemyY)
                std::cout << "E";
            else
                std::cout << " ";
        }
        std::cout << std::endl;
    }

    for (int i = 0; i < width + 2; i++)
        std::cout << "#";
    std::cout << std::endl;
}

void Input()
{
    if (_kbhit())
    {
        char key = _getch();
        switch (key)
        {
        case 'a':
            playerX--;
            break;
        case 'd':
            playerX++;
            break;
        case 'w':
            playerY--;
            break;
        case 's':
            playerY++;
            break;
        case ' ':
            // 射击敌人
            if (playerX == enemyX && playerY == enemyY)
                gameOver = true;
            break;
        }
    }
}

void Logic()
{
    // 移动敌人
    enemyY++;

    // 碰撞检测
    if (playerX == enemyX && playerY == enemyY)
        gameOver = true;
    if (enemyY >= height - 1)
        gameOver = true;
}

int main()
{
    Setup();
    while (!gameOver)
    {
        Draw();
        Input();
        Logic();
    }
    std::cout << "Game Over!" << std::endl;
    return 0;
}

这段代码创建了一个简单的二维游戏场景,在场景中有一个玩家和一个敌人。玩家可以使用WSAD键来控制移动,使用空格键射击敌人。游戏的目标是射击敌人并避免被敌人碰到。游戏循环会不断刷新游戏场景,并根据玩家的输入和敌人的移动来更新游戏状态。当玩家射中敌人或敌人到达底部时,游戏结束

给我用c++511写wsad和 操控的人机枪战二维游戏

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

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