21xrx.com
2024-11-05 18:30:53 Tuesday
登录
文章检索 我的文章 写文章
DevC++编写烟花效果代码
2023-07-06 19:49:19 深夜i     --     --
DevC++ 编写 烟花效果 代码

DevC++是一款流行的开源集成开发环境,常用于开发C和C++程序。其中,开发游戏和图形处理程序的人员更是大量使用这一环境。当我们需要制作炫酷的视觉效果时,烟花效果是不错的选择。以下是一个使用DevC++编写烟花效果代码的示例。

CODE:


#include<iostream>

#include<graphics.h>

#include<math.h>

using namespace std;

int time=0;

int Init(int &x,int &y,int &v,int &angle)

{

  x=320;

  y=240;

  v=5+rand()%10;

  angle=rand()%360;

}

void CalcPos(int x,int y,int v,int angle,int t,int &x1,int &y1)

{

  x1=x+v*cos(angle)*t;

  y1=y+v*sin(angle)*t-0.5*10*t*t;

}

void DrawParticle(int x,int y)

{

  setcolor(COLOR(255,255,255));

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

    circle(x+cos(i)*3,y+sin(i)*3,rand()%2);

}

int main()

{

  initgraph(640,480);

  int x,y,v,angle;

  int x1,y1;

  int t;

  while(true)

  {

    if(kbhit())break;

    if(time==0)

    {

      Init(x,y,v,angle);

      t=0;

    }

    t++;

    if(y>480)time=0;

    CalcPos(x,y,v,angle,t,x1,y1);

    if(v<2)time=0;

    if(x1>640||x1<0)

    {

      angle=180-angle;

      CalcPos(x,y,v,angle,t,x1,y1);

    }

    if(y1<0||y1>480)

    {

      angle=360-angle;

      CalcPos(x,y,v,angle,t,x1,y1);

    }

    if(time<=100){

      DrawParticle(x,y);

      y=y1;

      x=x1;

    }

    else

    

      time=0;

    

    time++;

    Sleep(50);

    cleardevice();

  }

  closegraph();

  return 0;

}

这段代码定义了4个函数:`Init`、`CalcPos`、`DrawParticle`和`main`。主函数中包含了循环,用于每帧重绘屏幕上的烟花。

烟花在初始化时会指定其位置和速度,然后每帧重新计算其位置。我们使用函数`CalcPos`来实现这一点。该函数需要输入`x,y,v,angle,t`五个参数,分别是粒子的位置、速度、方向和时间。`CalcPos`函数通过已知的初始状态和时间计算其结束状态。我们使用圆形表示火花尾迹,通过函数`DrawParticle`绘制每个粒子。

粒子运动时可以发生反弹和弹跳,我们需要在计算未来的位置时遵守相应的规则。最后,我们还可以通过计时器使烟花爆炸和消失。在这个例子中,定时器的时间限制是100毫秒。

总的来说,使用DevC++编写烟花效果代码非常简单,这也是其受欢迎的原因之一。无论是高级用户还是初学者,都可以使用DevC++轻松创建炫酷的视觉效果。

  
  

评论区

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