表白程序
1.结构体数组
一个心形 找到了46个点,一个点可以用一个变量存储
那么多个点需要用结构体数组
struct MyPoint{
int x;
int y;
};
int main{
MyPoint Pos[46]={xxxxx...};//创建了一个点数组
return 0;
}
2.图片
//贴图三部曲
//批量加载图片
IMAGE img[10];
char str[128];
for (int i = 0; i < 10; i++) {
sprintf(str, "image\%d.jpg", i + 1);//printf("%s
", str);
loadimage(&img[i] ,str,30, 30);
}
//将图片按各个点显示,拼出心形
for (int i=0;i<46;i++){
putimage(Pos[i].x,Pos[i].y,&img[i%10]);
Sleep(100);
}
3.使图片逐个移动
#include<stdio.h>
#include<windows.h>
int main(){
int arr[5]={10,20,30,40,50};
int add=0;
while(1){
for(int i=0;i<5;i++){
printf("%d ",arr[(i+add)%5]);
}
printf("
");
add++;
Sleep(500);
}
return 0;
}
//使图片逐步动
int add = 0;
while (1) {
cleardevice();
for (int i = 0; i < 46; i++) {
putimage(Pos[i].x, Pos[i].y, &img[(i + add) % 10]);
}
add++;
putimage(243, 326, &img_big[(add-1) % 10]);
Sleep(1000);
}
4.封装打包(多文件联合编程)
创建一个MyLove.h头文件和MyLove.cpp文件
将头文件,声明放进.h头文件
将自定义函数实现的功能放进.cpp文件(需要加一个#include"MyLove.h")
5.创建图标
项目名->添加->资源->icon
6.导入图片(将图片嵌入exe中)
项目名->添加->资源->Accelerator
就有一个resource.h (宏定义) 查看#define xxxxx
在.cpp中加#include"resource.h"在最前面
loadimage(1)->loadimage(&img,"路径",x,y)
loadimage(2)->loadimage(&img,"图片格式(png)",对应的资源名称,x,y)
对应的资源名称也可以用一个函数MAKEINTRESOURCE(101)(资源转换)
将debug(排除计算机故障)转为release(用于指软件或操作系统的发布)
7.窗体透明
void ShowWnd() { //Win32APi
//创建窗口
//创建窗口 宽 高 单位:px 像素
HWND hwnd = initgraph(GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
//设置窗口风格 去除标题
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) - WS_CAPTION);
//设置窗口位置
SetWindowPos(hwnd, HWND_TOPMOST, 500, 150, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), SWP_SHOWWINDOW);
//设置为透明
LONG WindowLong = GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED;
//设置窗口风格
SetWindowLong(hwnd, GWL_EXSTYLE, WindowLong);
//背景修改为黑色
SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), 0, LWA_COLORKEY);
}
8.播放音乐
//SND_RESOURCE 加载资料内容
//SND_ASYNC 异步播放:就是可以一边播放音乐 一边显示做其它的操作
//MAKEINTRESOURCE(IDR_WAVE1) 播放那个资源
//SND_LOOP 重复播放
PlaySound(MAKEINTRESOURCE(IDR_WAVE1), NULL, SND_RESOURCE | SND_ASYNC|SND_LOOP);