谁说程序员不浪漫???来来来一起打造一个浪漫的表白程序,配上好听的音乐,瞬间高大上。

下面,发下代码吧,昨天的愤怒的小鸟推箱子版本的没发,今天发这个,,,简单的C语言和easyx一起打造浪漫的程序附带上注释吧

#include

#include

#include

#include

#include

#include

#pragma comment ( lib, "Winmm.lib" )

/***** 宏定义区 ******/

#define NUM13// 烟花种类数量宏定义

#define PI 3.{{1415926548:0}}

/***** 结构定义区 **********/

// 烟花结构

struct FIRE

{

int r;// 当前爆炸半径

int max_r;// 爆炸中心距离边缘最大半径

int x, y;// 爆炸中心在窗口的坐标

int cen_x, cen_y;// 爆炸中心相对图片左上角的坐标

int width, height;// 图片的宽高

int xy[240][240];// 储存图片像素点

bool show;// 是否绽放

bool draw;// 开始输出像素点

DWORD t1, t2, dt;// 绽放速度

}Fire[NUM];

// 烟花弹结构

struct JET

{

int x, y;// 喷射点坐标

int hx, hy;// 最高点坐标------将赋值给 FIRE 里面的 x, y

int height;// 烟花高度

bool shoot;// 是否可以发射

DWORD t1, t2, dt;// 发射速度

IMAGE img[2];// 储存花弹一亮一暗图片

byte n : 1;// 图片下标

}Jet[NUM];

/**** 函数申明区 ****/

void welcome();

void Init(int);// 初始化烟花

void Load();// 加载烟花图片

void Shoot();// 发射烟花

void Chose(DWORD&);// 筛选烟花

void Style(DWORD&);// 发射样式

void Show(DWORD*);// 绽放烟花

// 主函数

void main()

{

initgraph(1200, 800);

srand(time(0));

// 播放背景音乐

mciSendString("open ./fire/小幸运.mp3 alias bk", 0, 0, 0);

mciSendString("play bk repeat", 0, 0, 0);

welcome();

DWORD t1 = timeGetTime();// 筛选烟花计时

DWORD st1 = timeGetTime();// 播放花样计时

DWORD* pMem = GetImageBuffer();// 获取窗口显存指针

for (int i = 0; i < NUM; i )// 初始化烟花

{

Init(i);

}

Load();// 将烟花图片信息加载进相应结构中

BeginBatchDraw();// 开始批量绘图

while (!kbhit())

{

Sleep(10);

// 随机选择 4000 个像素点擦除

for (int clr = 0; clr < 1000; clr )

{

for (int j = 0; j < 2; j )

{

int px1 = rand() % 1200;

int py1 = rand() % 800;

if (py1 < 799)// 防止越界

pMem[py1 * 1200 px1] = pMem[py1 * 1200 px1 1] = BLACK;// 对显存赋值擦出像素点

}

}

Chose(t1);// 筛选烟花

Shoot();// 发射烟花

Show(pMem);// 绽放烟花

Style(st1);// 花样发射

FlushBatchDraw();// 显示前面的所有绘图操作

}

}

void welcome()

{

//setfillstyle(0);

setcolor(YELLOW);

for (int i = 0; i < 50; i )

{

int x = 600 int(180 * sin(PI * 2 * i / 60));

int y = 200 int(180 * cos(PI * 2 * i / 60));

cleardevice();

settextstyle(i, 0, "楷体");

outtextxy(x, y, "双十一,不剁手!");

outtextxy(x-130, y 100, "写段代码送女友!");

Sleep(25);

}

getchar();

cleardevice();

settextstyle(25, 0, "楷体");

outtextxy(400, 200, "原来你是我最想留住的幸运");

outtextxy(400, 250, "原来我们和爱情曾经靠得那么近");

outtextxy(400, 300, "那为我对抗世界的决定");

outtextxy(400, 350, "那陪我淋的雨");

outtextxy(400, 400, "一幕幕都是你");

outtextxy(400, 450, "一尘不染的真心。");

outtextxy(600, 500, "----《小幸运》");

getchar();

}

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

C语言和图形界面编程打造——浪漫的表白程序相关推荐

  1. c++语言表白超炫图形_C/C++图形界面编程打造——浪漫的表白程序!

    谁说程序员不浪漫???来来来一起打造一个浪漫的表白程序,配上好听的音乐,瞬间高大上. 下面,发下代码吧,昨天的愤怒的小鸟推箱子版本的没发,今天发这个,,,简单的C语言和easyx一起打造浪漫的程序附带 ...

  2. 如何打开电脑c语言窗口,C语言控制台窗口图形界面编程(五). -电脑资料

    控制文本的移动是控制台窗口界面编程的一个很重要的功能,有了这个功能我们可以实现界面的滚动, BOOL ScrollConsoleScreenBuffer(      //文本移动函数 HANDLE h ...

  3. Gox语言中使用Sciter库进行GUI图形界面编程-GX23.1

    Sciter是非常优秀的跨平台GUI图形界面编程库,只需附带一个动态链接库文件,就可以实现基于HTML/CSS/TiScript的图形界面,并且已经经过很多公司和商用产品的实际检验,稳定可靠.我们常见 ...

  4. 【C语言】控制台窗口图形界面编程(一)句柄和文本属性

    00. 目录 文章目录 00. 目录 01. 句柄 02. GetStdHandle函数 03. CloseHandle函数 04. SetConsoleTextAttribute函数 05. 十进制 ...

  5. C语言运行界面字体,C语言实现图形界面登陆窗口.docx

    纯C语言实现图形界面登陆窗口 一下是界面图: 编程工具是:VC6.0 请根据个人需要对源代码进行修改使用,图片放在工程文件夹中.新建时应该将文件后缀设置为.cpp 以下是程序灯源代码: #includ ...

  6. Qt图形界面编程入门(4)

    构造函数和析构函数 构造函数是一个与类同名的特殊的公有成员函数. 创建类对象时构造函数会被调用,且只调用一次/ 构造函数无返回类型. ·  默认构造函数格式: 类名(){.......} Accoun ...

  7. C语言控制台窗口界面编程:printf格式化显示-修改字符字体、颜色和背景

    环境:cygwin-Linux+GCC PS:windows的cmd下不能实现. 在linux终端中一个ls指令得出的显示结果文件夹.文件以及不同操作权限的文件的显示颜色是不同的,那么这个是如何实现的 ...

  8. 视频教程-精通Win32 API编程-Windows图形界面编程-C/C++

    精通Win32 API编程-Windows图形界面编程 黄强老师,国家软件设计师,软件开发工程师,项目经理.产品经理.培训讲师. 创业合伙人,多年C.C++开发经验,尤擅长移动互联网项目的开发! 黄强 ...

  9. java图形界面多线程_多线程编程、Java I/O系统和Java图形界面编程

    多线程编程: 一个正在运行的程序通常称为一个进程,每一个任务称为一个线程,中能够在一个程序内运行多线程的程序称为多线程程序. 线程与进程的区别:①每个进程都需要操作系统为其分配独立的内存空间: ②而同 ...

最新文章

  1. 在Dll中创建对话框并调用
  2. ERROR 1045 (28000): Access denied for user'root'@'localhost'(using password:YES)
  3. EasyUI 在aspx页面显示高度不正常解决办法
  4. CV Code | 本周新出计算机视觉开源代码汇总(南理SGE 和Intel的实时动作识别很吸引人)...
  5. java.io.NotSerializableException: com.codahale.metrics.MetricRegistry
  6. fastunfolding算法_社区发现算法综述—part1
  7. python控制浏览器模拟鼠标点击网页标题_如何使用python来模拟鼠标点击(将经过实例自动化模拟在360浏览器中自动搜索python)...
  8. iOS·Charts·集成步骤
  9. 推荐一款轻量级好用的开源PDF阅读器,确实好用~
  10. 二维码红包系统源代码
  11. mro python_Python进阶-继承中的MRO与super
  12. 我的csdn的第三课的总结———淮师杨建波
  13. The ALTER TABLE statement conflicted with the FOREIGN KEY constraint FK_SortId.
  14. 应用计算机测定电阻伏安特性,实验计算机测定电阻伏安特性
  15. 此计算机未连接到网络.单击以连接,此计算机无法连接到家庭组win7
  16. 他们竟用后台数据偷窥喜欢的女性!Facebook一年半解雇52名工程师
  17. 《软件开发与创新:ThoughtWorks文集:续集》
  18. @Scheduled(cron = * * * * * *) cron表达式详解
  19. 《孙子兵法》十三篇注译(3--作战篇)
  20. ISP基本框架及算法介绍

热门文章

  1. formlayout_精简SWT FormLayout的用法
  2. Jsoup V的幕后秘密:优化的技巧和窍门
  3. 内存泄漏分析_调查内存泄漏第2部分–分析问题
  4. JSON-B非对称属性绑定
  5. java web 刷新_Java Web项目的保存和刷新
  6. java 垃圾回收手动回收_Java垃圾回收(4)
  7. 带有Java DSL的Spring Integration MongoDB适配器
  8. glassfish默认密码_在MySQL上使用含盐密码的GlassFish JDBC安全性
  9. jaxb xsd生成xml_使用JAXB从XSD生成XML
  10. 教程:如何实现Java OAuth 2.0以使用GitHub和Google登录