21xrx.com
2024-11-05 18:43:02 Tuesday
登录
文章检索 我的文章 写文章
C++飞机大战游戏代码
2023-07-08 14:15:48 深夜i     --     --
C++ 飞机大战游戏 代码 游戏开发 游戏设计

飞机大战是一款经典的射击游戏,在游戏中,玩家操纵一架飞机,不断地射击敌方飞机并躲避敌方的攻击。这个游戏非常有趣而且容易上手,因此也成为了很多人的童年回忆。下面是一段C++飞机大战游戏的代码,供大家参考。

首先,我们需要引入一些头文件:


#include <iostream>

#include <windows.h>

#include <conio.h>

#include <time.h>

using namespace std;

然后,定义一些常量和变量来表示游戏界面和游戏状态:


const int N = 20; // 游戏界面的大小为20*20

int board[N][N];  // 游戏界面

int x, y;     // 玩家飞机的坐标

int score = 0;   // 玩家的得分

bool is_alive = true; // 玩家是否存活

接下来,编写游戏初始化函数,初始化游戏界面和玩家飞机的位置:


void init_game() {

  // 初始化游戏界面

  for (int i = 0; i < N; i++) {

    for (int j = 0; j < N; j++) {

      if (i == 0 || i == N - 1 || j == 0 || j == N - 1) {

        board[i][j] = 1;

      } else {

        board[i][j] = 0;

      }

    }

  }

  // 初始化玩家飞机的位置

  x = N / 2;

  y = N - 2;

  board[x][y] = 2;

}

然后,编写游戏界面的显示函数:


void show_board() {

  for (int i = 0; i < N; i++) {

    for (int j = 0; j < N; j++) {

      if (board[i][j] == 0)

        cout << " ";

       else if (board[i][j] == 1)

        cout << "#";

       else if (board[i][j] == 2)

        cout << "A";

       else if (board[i][j] == 3) {

        cout << "*";

      }

    }

    cout << endl;

  }

  cout << "Score: " << score << endl;

}

游戏界面中,0表示空格,1表示墙,2表示玩家飞机,3表示敌方飞机的子弹。

然后,编写玩家控制函数:


void move_player() {

  if (_kbhit()) { // 判断是否有按键按下

    char ch = _getch();

    if (ch == 'a' && board[x][y - 1] != 1) {

      board[x][y] = 0;

      y--;

      board[x][y] = 2;

    } else if (ch == 'd' && board[x][y + 1] != 1) {

      board[x][y] = 0;

      y++;

      board[x][y] = 2;

    } else if (ch == 'w' && board[x - 1][y] != 1) {

      board[x][y] = 0;

      x--;

      board[x][y] = 2;

    } else if (ch == 's' && board[x + 1][y] != 1) {

      board[x][y] = 0;

      x++;

      board[x][y] = 2;

    } else if (ch == 'j') {

      for (int i = x - 1; i >= 0; i--) {

        if (board[i][y] == 3) {

          board[i][y] = 0;

          score++;

          break;

        }

      }

      board[x - 1][y] = 3;

    }

  }

}

玩家可以使用WASD键来控制飞机的移动,按J键可以发射子弹。

接下来,编写敌方飞机的移动和子弹发射函数:


void move_enemy() {

  srand((unsigned int)time(NULL));

  int pos = rand() % N;

  board[1][pos] = 3;

  for (int i = 1; i < N; i++) {

    for (int j = 0; j < N; j++) {

      if (board[i][j] == 3) {

        board[i][j] = 0;

        if (i + 1 < N) {

          board[i + 1][j] = 3;

          if (board[i + 1][y] == 2)

            is_alive = false;

          

        }

      }

    }

  }

}

void fire_enemy() {

  srand((unsigned int)time(NULL));

  int pos = rand() % N;

  for (int i = N - 2; i >= 0; i--) {

    if (board[i][pos] == 2) {

      board[i][pos] = 0;

      is_alive = false;

      break;

    }

  }

  board[N - 2][pos] = 3;

}

最后,编写游戏主函数,不断地刷新游戏界面并进行游戏逻辑:


int main() {

  init_game();

  while (is_alive) {

    system("cls"); // 清屏

    move_player();

    move_enemy();

    fire_enemy();

    show_board();

    Sleep(200);

  }

  cout << "Game over." << endl;

  return 0;

}

在游戏主函数中,不断地执行玩家控制函数、敌方飞机移动、敌方飞机子弹发射和游戏界面显示函数,并通过Sleep函数来控制游戏的速度。

这就是一个简单的C++飞机大战游戏的代码,希望对大家有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复