21xrx.com
2024-09-20 00:09:36 Friday
登录
文章检索 我的文章 写文章
C++变色爱心制作教程
2023-07-04 22:20:05 深夜i     --     --
C++ 变色 爱心 制作 教程

C++ 变色爱心制作教程

本教程将向您展示如何使用 C++ 编程语言创建一个变色爱心。您将学习如何使用控制台窗口和基本绘图函数来绘制形状以及如何使用计时器来实现颜色变化效果。

开始之前,请确保您已经安装了 Visual Studio IDE,并创建了一个控制台应用程序项目。

第一步:绘制爱心

在开始编写代码之前,您需要了解一些基本知识。首先,我们来绘制一个简单的爱心。

在 main 函数中添加以下代码:


#include <iostream>

#include <Windows.h>

using namespace std;

int main()

{

  HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

  CONSOLE_CURSOR_INFO cci;

  cci.bVisible = false;

  cci.dwSize = 1;

  SetConsoleCursorInfo(hConsole, &cci);

  COORD coord;

  for (int i = 1; i <= 10; i++)

  {

    coord.X = i + 40;

    coord.Y = i + 10;

    SetConsoleCursorPosition(hConsole, coord);

    cout << "     ";

  }

  for (int i = 1; i <= 10; i++)

  {

    coord.X = 21 - i + 40;

    coord.Y = i + 10;

    SetConsoleCursorPosition(hConsole, coord);

    cout << "     ";

  }

  for (int i = 1; i <= 20; i++)

  {

    coord.X = i + 30;

    coord.Y = i + 10;

    SetConsoleCursorPosition(hConsole, coord);

    cout << " ";

  }

  for (int i = 1; i <= 20; i++)

  {

    coord.X = 51 - i;

    coord.Y = i + 10;

    SetConsoleCursorPosition(hConsole, coord);

    cout << " ";

  }

  return 0;

}

运行程序,您将看到以下输出:


         

     ████    

    ███████    

    ███████    

    ███████    

     █████    

     ███     

      █     

            

这段代码使用控制台窗口的基本绘图函数和循环来绘制一个爱心形状。您可以使用以下代码更改爱心的大小:


for (int i = 1; i <= 10; i++)

{

  coord.X = i + 40;

  coord.Y = i + 10;

  SetConsoleCursorPosition(hConsole, coord);

  cout << "     ";

}

for (int i = 1; i <= 10; i++)

{

  coord.X = 21 - i + 40;

  coord.Y = i + 10;

  SetConsoleCursorPosition(hConsole, coord);

  cout << "     ";

}

for (int i = 1; i <= 20; i++)

{

  coord.X = i + 30;

  coord.Y = i + 10;

  SetConsoleCursorPosition(hConsole, coord);

  cout << " ";

}

for (int i = 1; i <= 20; i++)

{

  coord.X = 51 - i;

  coord.Y = i + 10;

  SetConsoleCursorPosition(hConsole, coord);

  cout << " ";

}

第二步:实现颜色变化效果

现在,我们将添加一些代码,使爱心变色。我们将使用计时器来切换颜色,使其看起来像彩色动画。

在 main 函数中添加以下代码:


#include <iostream>

#include <Windows.h>

#include <time.h>

using namespace std;

int main()

{

  HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

  CONSOLE_CURSOR_INFO cci;

  cci.bVisible = false;

  cci.dwSize = 1;

  SetConsoleCursorInfo(hConsole, &cci);

  COORD coord;

  int color = 4; // 前景色为红色

  time_t startTime = time(NULL); // 获取当前时间

  while (true)

  {

    // 计算时间差

    time_t currentTime = time(NULL);

    double diffTime = difftime(currentTime, startTime);

    if (diffTime >= 1.0)

    {

      // 更改前景色

      if (color == 4)

      

        color = 14; // 前景色为黄色

      

      else

      

        color = 4; // 前景色为红色

      

      SetConsoleTextAttribute(hConsole, color);

      startTime = time(NULL);

    }

    // 绘制爱心

    for (int i = 1; i <= 10; i++)

    {

      coord.X = i + 40;

      coord.Y = i + 10;

      SetConsoleCursorPosition(hConsole, coord);

      cout << "     ";

    }

    for (int i = 1; i <= 10; i++)

    {

      coord.X = 21 - i + 40;

      coord.Y = i + 10;

      SetConsoleCursorPosition(hConsole, coord);

      cout << "     ";

    }

    for (int i = 1; i <= 20; i++)

    {

      coord.X = i + 30;

      coord.Y = i + 10;

      SetConsoleCursorPosition(hConsole, coord);

      cout << " ";

    }

    for (int i = 1; i <= 20; i++)

    {

      coord.X = 51 - i;

      coord.Y = i + 10;

      SetConsoleCursorPosition(hConsole, coord);

      cout << " ";

    }

  }

  return 0;

}

运行程序,您将看到一个闪烁的彩色爱心:

![image](https://user-images.githubusercontent.com/63895231/127265326-01d99488-e320-403b-a5a1-00322d085406.png)

上述代码在循环中使用计时器来切换前景色。当时间差大于等于 1 秒时,它会更改颜色并将计时器重置为当前时间。

我们使用 SetConsoleTextAttribute 函数来更改前景色。前景色是在控制台窗口中绘制文本的颜色。在上面的示例中,我们将其设置为红色和黄色。

现在您已经学会了如何使用 C++ 编程语言创建一个变色爱心。祝您玩得愉快!

  
  

评论区

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