C语言和图形界面编程打造——浪漫的表白程序
谁说程序员不浪漫???来来来一起打造一个浪漫的表白程序,配上好听的音乐,瞬间高大上。
下面,发下代码吧,昨天的愤怒的小鸟推箱子版本的没发,今天发这个,,,简单的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语言和图形界面编程打造——浪漫的表白程序相关推荐
- c++语言表白超炫图形_C/C++图形界面编程打造——浪漫的表白程序!
谁说程序员不浪漫???来来来一起打造一个浪漫的表白程序,配上好听的音乐,瞬间高大上. 下面,发下代码吧,昨天的愤怒的小鸟推箱子版本的没发,今天发这个,,,简单的C语言和easyx一起打造浪漫的程序附带 ...
- 如何打开电脑c语言窗口,C语言控制台窗口图形界面编程(五). -电脑资料
控制文本的移动是控制台窗口界面编程的一个很重要的功能,有了这个功能我们可以实现界面的滚动, BOOL ScrollConsoleScreenBuffer( //文本移动函数 HANDLE h ...
- Gox语言中使用Sciter库进行GUI图形界面编程-GX23.1
Sciter是非常优秀的跨平台GUI图形界面编程库,只需附带一个动态链接库文件,就可以实现基于HTML/CSS/TiScript的图形界面,并且已经经过很多公司和商用产品的实际检验,稳定可靠.我们常见 ...
- 【C语言】控制台窗口图形界面编程(一)句柄和文本属性
00. 目录 文章目录 00. 目录 01. 句柄 02. GetStdHandle函数 03. CloseHandle函数 04. SetConsoleTextAttribute函数 05. 十进制 ...
- C语言运行界面字体,C语言实现图形界面登陆窗口.docx
纯C语言实现图形界面登陆窗口 一下是界面图: 编程工具是:VC6.0 请根据个人需要对源代码进行修改使用,图片放在工程文件夹中.新建时应该将文件后缀设置为.cpp 以下是程序灯源代码: #includ ...
- Qt图形界面编程入门(4)
构造函数和析构函数 构造函数是一个与类同名的特殊的公有成员函数. 创建类对象时构造函数会被调用,且只调用一次/ 构造函数无返回类型. · 默认构造函数格式: 类名(){.......} Accoun ...
- C语言控制台窗口界面编程:printf格式化显示-修改字符字体、颜色和背景
环境:cygwin-Linux+GCC PS:windows的cmd下不能实现. 在linux终端中一个ls指令得出的显示结果文件夹.文件以及不同操作权限的文件的显示颜色是不同的,那么这个是如何实现的 ...
- 视频教程-精通Win32 API编程-Windows图形界面编程-C/C++
精通Win32 API编程-Windows图形界面编程 黄强老师,国家软件设计师,软件开发工程师,项目经理.产品经理.培训讲师. 创业合伙人,多年C.C++开发经验,尤擅长移动互联网项目的开发! 黄强 ...
- java图形界面多线程_多线程编程、Java I/O系统和Java图形界面编程
多线程编程: 一个正在运行的程序通常称为一个进程,每一个任务称为一个线程,中能够在一个程序内运行多线程的程序称为多线程程序. 线程与进程的区别:①每个进程都需要操作系统为其分配独立的内存空间: ②而同 ...
最新文章
- 在Dll中创建对话框并调用
- ERROR 1045 (28000): Access denied for user'root'@'localhost'(using password:YES)
- EasyUI 在aspx页面显示高度不正常解决办法
- CV Code | 本周新出计算机视觉开源代码汇总(南理SGE 和Intel的实时动作识别很吸引人)...
- java.io.NotSerializableException: com.codahale.metrics.MetricRegistry
- fastunfolding算法_社区发现算法综述—part1
- python控制浏览器模拟鼠标点击网页标题_如何使用python来模拟鼠标点击(将经过实例自动化模拟在360浏览器中自动搜索python)...
- iOS·Charts·集成步骤
- 推荐一款轻量级好用的开源PDF阅读器,确实好用~
- 二维码红包系统源代码
- mro python_Python进阶-继承中的MRO与super
- 我的csdn的第三课的总结———淮师杨建波
- The ALTER TABLE statement conflicted with the FOREIGN KEY constraint FK_SortId.
- 应用计算机测定电阻伏安特性,实验计算机测定电阻伏安特性
- 此计算机未连接到网络.单击以连接,此计算机无法连接到家庭组win7
- 他们竟用后台数据偷窥喜欢的女性!Facebook一年半解雇52名工程师
- 《软件开发与创新:ThoughtWorks文集:续集》
- @Scheduled(cron = * * * * * *) cron表达式详解
- 《孙子兵法》十三篇注译(3--作战篇)
- ISP基本框架及算法介绍
热门文章
- formlayout_精简SWT FormLayout的用法
- Jsoup V的幕后秘密:优化的技巧和窍门
- 内存泄漏分析_调查内存泄漏第2部分–分析问题
- JSON-B非对称属性绑定
- java web 刷新_Java Web项目的保存和刷新
- java 垃圾回收手动回收_Java垃圾回收(4)
- 带有Java DSL的Spring Integration MongoDB适配器
- glassfish默认密码_在MySQL上使用含盐密码的GlassFish JDBC安全性
- jaxb xsd生成xml_使用JAXB从XSD生成XML
- 教程:如何实现Java OAuth 2.0以使用GitHub和Google登录