21xrx.com
2024-11-05 14:40:30 Tuesday
登录
文章检索 我的文章 写文章
C++简单游戏代码实例
2023-06-23 12:06:59 深夜i     --     --
C++ 简单游戏 代码实例 编程 游戏开发

C++是一种高级编程语言,它拥有广泛的应用范围,其中包括游戏开发。在这篇文章中,我们将为你展示一个简单的C++游戏代码实例。

这个游戏的目的是让玩家控制一个小球跳过障碍,同时收集尽可能多的金币,每个金币都会增加分数。当小球撞到障碍物时,游戏结束。

我们先来看一下游戏的主要代码:


#include <iostream>

#include <conio.h>

#include <windows.h>

using namespace std;

bool gameOver;

const int width = 20;

const int height = 20;

int ballX, ballY, coinX, coinY, score;

enum eDirection STOP = 0;

eDirection dir;

void Setup()

{

  gameOver = false;

  dir = STOP;

  ballX = width / 2;

  ballY = height / 2;

  coinX = rand() % width;

  coinY = rand() % height;

  score = 0;

}

void Draw()

{

  system("cls");

  for (int i = 0; i < width + 2; i++)

    cout << "-";

  cout << endl;

  for (int i = 0; i < height; i++)

  {

    for (int j = 0; j < width; j++)

    {

      if (j == 0)

        cout << "|";

      if (i == ballY && j == ballX)

        cout << "O";

      else if (i == coinY && j == coinX)

        cout << "$";

      else

        cout << " ";

      if (j == width - 1)

        cout << "|";

    }

    cout << endl;

  }

  for (int i = 0; i < width + 2; i++)

    cout << "-";

  cout << endl;

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

}

void Input()

{

  if (_kbhit())

  {

    switch (_getch())

    {

    case 'a':

      dir = LEFT;

      break;

    case 'd':

      dir = RIGHT;

      break;

    case 'w':

      dir = UP;

      break;

    case 's':

      dir = DOWN;

      break;

    case 'x':

      gameOver = true;

      break;

    }

  }

}

void Logic()

{

  switch (dir)

  {

  case LEFT:

    ballX--;

    break;

  case RIGHT:

    ballX++;

    break;

  case UP:

    ballY--;

    break;

  case DOWN:

    ballY++;

    break;

  }

  if (ballX > width || ballX < 0 || ballY > height || ballY < 0)

    gameOver = true;

  if (ballX == coinX && ballY == coinY)

  {

    score += 10;

    coinX = rand() % width;

    coinY = rand() % height;

  }

}

int main()

{

  Setup();

  while (!gameOver)

  {

    Draw();

    Input();

    Logic();

    Sleep(50);

  }

  return 0;

}

代码很清晰,让我们来逐一解释一下。

第1~5行声明了一些全局变量,包括游戏是否结束、屏幕宽度和高度、小球和金币的初始位置,以及分数。

第7~9行声明了枚举类型eDirection,用来表示小球的运动方向。

第11~18行是Setup()函数,用来设置游戏的初始状态,包括将游戏结束状态设置为false,小球的运动方向设置为STOP,小球和金币的初始位置设置为屏幕的中心位置,分数设置为0。

第20~49行是Draw()函数,用来绘制游戏屏幕。我们使用cls()函数清空屏幕,并使用循环语句和判断语句绘制障碍、金币和小球,最后输出当前分数。

第51~66行是Input()函数,用来检测玩家的按键输入,并根据输入设置小球的运动方向。

第68~82行是Logic()函数,用来检测小球是否越界或者与金币碰撞,并根据检测结果更新分数和金币的位置。

第84~92行是main()函数,用来驱动游戏的整个过程,包括调用Setup()函数设置游戏初始状态,进入游戏循环,并不断重复Draw()、Input()和Logic()函数,每次循环结束时休眠50毫秒。

现在我们已经了解了这个游戏的主要代码,让我们来看看它是如何工作的。

运行程序后,你会看到一个小球和一些金币,你可以使用键盘上的a、d、w、s键来控制小球的运动方向。如果小球越界或者与障碍物碰撞,游戏将结束。每次小球碰到金币时,游戏分数将增加10点,并重新随机生成一个金币位置。

这个游戏只是一个简单的C++代码实例,但它展示了使用C++编写游戏的基本方法,包括绘制游戏屏幕、检测输入和更新游戏状态等。如果你对游戏开发感兴趣,不妨尝试编写更复杂的游戏,并深入学习C++编程语言。

  
  

评论区

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