用c语言写一个飞机大战游戏
时间: 2023-03-20 16:00:56 浏览: 85
好的,下面是一个简单的飞机大战游戏的C语言实现示例:
```c
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#define WIDTH 40 // 游戏界面宽度
#define HEIGHT 20 // 游戏界面高度
int x, y; // 玩家飞机的位置
int score; // 玩家得分
int enemy_x[5]; // 敌机的位置
int enemy_y[5];
int bullet_x, bullet_y; // 子弹的位置
void gotoxy(int x, int y) // 光标移动函数
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void draw_plane() // 绘制玩家飞机
{
gotoxy(x, y);
printf(" /\\ ");
gotoxy(x, y + 1);
printf(" | | ");
gotoxy(x, y + 2);
printf("/ \\");
}
void draw_enemy() // 绘制敌机
{
for (int i = 0; i < 5; i++) {
if (enemy_y[i] > 0) {
gotoxy(enemy_x[i], enemy_y[i]);
printf(" /--\\ ");
gotoxy(enemy_x[i], enemy_y[i] + 1);
printf("( )");
gotoxy(enemy_x[i], enemy_y[i] + 2);
printf(" \\__/ ");
}
}
}
void draw_bullet() // 绘制子弹
{
gotoxy(bullet_x, bullet_y);
printf("^");
}
int kbhit() // 键盘输入判断函数
{
if (_kbhit()) {
return _getch();
} else {
return -1;
}
}
void init_game() // 游戏初始化函数
{
x = WIDTH / 2;
y = HEIGHT - 3;
score = 0;
for (int i = 0; i < 5; i++) {
enemy_x[i] = rand() % WIDTH;
enemy_y[i] = -1 - i * 4;
}
bullet_x = -1;
bullet_y = -1;
}
void update_game() // 游戏更新函数
{
// 移动玩家飞机
if (kbhit() == 'a' && x > 0) {
x--;
}
if (kbhit() == 'd' && x < WIDTH - 5) {
x++;
}
// 发射子弹
if (kbhit() == ' ') {
bullet_x = x + 2;
bullet_y = y - 1;
}
// 移动子弹
if (bullet_y > 0) {
bullet_y--;
// 检测是否击中敌机
for (int i = 0; i < 5; i++) {
if (bullet_x >= enemy_x[i] && bullet_x <= enemy_x[i] + 5 &&
bullet_y >= enemy_y[i] && bullet_y <= enemy_y[i] + 2) {
enemy_x[i] = rand() % WIDTH;
enemy_y[i] = -1 - i
阅读全文