给我用c++511写wsad和 操控的人机枪战游戏
以下是一个用C++ 5.11编写的简单人机枪战游戏的示例代码:
#include <iostream>
#include <conio.h> // 用于监听键盘输入
using namespace std;
// 定义游戏地图尺寸
const int WIDTH = 20;
const int HEIGHT = 10;
// 定义角色和敌人的初始位置
int playerX = WIDTH / 2;
int playerY = HEIGHT / 2;
int enemyX = 1;
int enemyY = 1;
// 定义游戏状态
bool gameOver = false;
// 游戏循环
void gameLoop() {
while (!gameOver) {
// 清空屏幕
system("cls");
// 绘制游戏地图
for (int y = 0; y < HEIGHT; y++) {
for (int x = 0; x < WIDTH; x++) {
// 绘制角色
if (x == playerX && y == playerY) {
cout << "P";
}
// 绘制敌人
else if (x == enemyX && y == enemyY) {
cout << "E";
}
// 绘制空地
else {
cout << ".";
}
}
cout << endl;
}
// 监听键盘输入
if (_kbhit()) {
char input = _getch();
// 根据输入移动角色
switch (input) {
case 'w':
playerY--;
break;
case 's':
playerY++;
break;
case 'a':
playerX--;
break;
case 'd':
playerX++;
break;
case ' ':
// 角色开火
if (playerX == enemyX && playerY == enemyY) {
gameOver = true;
}
break;
default:
break;
}
}
// 更新敌人位置
if (playerX < enemyX) {
enemyX--;
} else if (playerX > enemyX) {
enemyX++;
}
if (playerY < enemyY) {
enemyY--;
} else if (playerY > enemyY) {
enemyY++;
}
// 判断游戏结束条件
if (playerX == enemyX && playerY == enemyY) {
gameOver = true;
}
}
// 游戏结束,显示结果
system("cls");
cout << "游戏结束!" << endl;
if (playerX == enemyX && playerY == enemyY) {
cout << "你击败了敌人!" << endl;
} else {
cout << "你被敌人击败了!" << endl;
}
}
int main() {
cout << "欢迎来到人机枪战游戏!" << endl;
cout << "使用WSAD控制角色移动,空格键开火。" << endl;
cout << "按任意键开始游戏..." << endl;
_getch();
// 进入游戏循环
gameLoop();
return 0;
}
请注意,这只是一个非常简单的示例,只有一个敌人和一个角色,游戏地图也很小。您可以根据自己的需求进行扩展和改进
原文地址: https://www.cveoy.top/t/topic/hTCm 著作权归作者所有。请勿转载和采集!