给我用c++511写wsad和 操控的人机枪战二维游戏
以下是一个使用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键来控制移动,使用空格键射击敌人。游戏的目标是射击敌人并避免被敌人碰到。游戏循环会不断刷新游戏场景,并根据玩家的输入和敌人的移动来更新游戏状态。当玩家射中敌人或敌人到达底部时,游戏结束
原文地址: https://www.cveoy.top/t/topic/hTCt 著作权归作者所有。请勿转载和采集!