以下是一个简单的飞机大战游戏的C++代码示例。这个例子只是一个基本框架,您可以根据需要进行扩展和修改。
```cpp
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
const int WIDTH = 20;
const int HEIGHT = 20;
char field[HEIGHT][WIDTH];
int playerX, playerY;
void setup() {
playerX = WIDTH / 2;
playerY = HEIGHT - 1;
for (int i = 0; i < HEIGHT; i++) {
for (int j = 0; j < WIDTH; j++) {
if (i == 0 || i == HEIGHT - 1 || j == 0 || j == WIDTH - 1) {
field[i][j] = '#'; // 边界
} else {
field[i][j] = ' ';
}
}
}
}
void draw() {
system("cls"); // 清屏
for (int i = 0; i < HEIGHT; i++) {
for (int j = 0; j < WIDTH; j++) {
cout << field[i][j];
}
cout << endl;
}
}
void input() {
if (_kbhit()) {
switch (_getch()) {
case 'a': // 向左
if (playerX > 1) playerX--;
break;
case 'd': // 向右
if (playerX < WIDTH - 2) playerX++;
break;
case 'q': // 退出
exit(0);
break;
}
}
}
void logic() {
field[playerY][playerX] = 'P'; // 玩家飞机
}
int main() {
setup();
while (true) {
input();
logic();
draw();
Sleep(100); // 控制帧率
field[playerY][playerX] = ' '; // 清除飞机标记
}
return 0;
}
```
### 代码说明:
1. **设置** (`setup`): 初始化游戏场景,设置边界和玩家初始位置。
2. **绘图** (`draw`): 显示当前游戏场景。
3. **输入** (`input`): 读取用户输入,控制飞机的左右移动。
4. **逻辑** (`logic`): 更新游戏状态,这里简单展示了玩家飞机在场景中的位置。
5. **主循环**: 不断接收输入、更新状态和绘制场景,同时控制帧率。
### 注意:
- 这个示例使用了`<conio.h>`中的`_kbhit()`和`_getch()`函数来处理输入,在不同的编译环境中可能需要替换相应的函数。
- 这个代码只是一个基础原型,您可能需要添加更多的功能,比如敌人、子弹、得分系统等,以构建一个完整的游戏。
这条消息由Nova生成 - 免费下载:
https://novaappai.page.link/TiauXquhHEDcdwx4A