案例:表白程序

1、创建显示界面

#include <stdio.h>
#include <graphics.h>

int main(){
    
    initgraph(800,800);//创建显示界面,宽度800,高度800
    
    
    system("pause");
    return 0;
}

2、贴图三部曲

2.1定义
    IMAGE img;
2.2加载
    loadimage(&img,"路径");
2.3显示
    putimage(0,0,&img);

3、c语言实现动画操作

for (int i = 0; i < 44; i++)
		{
			putimage(Pos[i].x, Pos[i].y, &img[(i+add)% 10]);

			
		}
		putimage(352, 180, &Img_Big[add % 10]);

4、设置背景

//显示窗口透明
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);
}

//批量加载图片到img数组中   知识产权 劳动的成果!!!

5、完整程序

#include <stdio.h>
#include <graphics.h>
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")

struct MyPoint
{
	int x;
	int y;
};
IMAGE img[10],Img_Big[10];
void InitImg() {
	for (int i = 0; i < 10; i++)
	{
		char Str[128];
		sprintf_s(Str, "images\\%d.jpg", i + 1);
		loadimage(&img[i], Str, 20, 10);
		loadimage(&Img_Big[i], Str, 200, 100);
	}

}

int main() {
	
	MyPoint Pos[44] = {
		{ 441,161 },
	    { 453,142 },
	    { 467,127 },
	    { 486,110 },
		{ 512,100 },
	    { 538,95 },
		{ 560,100 },
	    { 583,110 },
	    { 597,127 },
	    { 605,142 },
	    { 610,160 },
	    { 610,179 },
	    { 608,199 },
	    { 602,217 },
	    { 594,234 },
	    { 584,252 },
	    { 569,272 },
	    { 549,292 },
	    { 528,310 },
		{ 506,327 },
	    { 480,342 },
	    { 459,354 },
	    { 441,359 },
	    { 426,354 },
	    { 403,342 },
	    { 379,327 },
	    { 354,310 },
	    { 334,292 },
	    { 313,272 },
	    { 299,252 },
	    { 289,234 },
	    { 280,217 },
	    { 274,199 },
	    { 271,179 },
	    { 271,160 },
	    { 276,142 },
	    { 285,127 },
	    { 300,110 },
		{325,100},
	    { 350,95 },
		{375,100},
	    { 398,110 },
	    { 415,127 },
	    { 427,142 }
	};
	InitImg();
	mciSendString("play 1.mp3",0,0,0);
	initgraph(900, 900);
	int add = 0;
	while (1)
	{
		for (int i = 0; i < 44; i++)
		{
			putimage(Pos[i].x, Pos[i].y, &img[(i+add)% 10]);

			
		}
		putimage(352, 180, &Img_Big[add % 10]);
		add++;
		Sleep(1000);
	}
	system("pause");
	return 0;
}
                  
                    
              
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
   
    
    
    
    
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
}
posted @ 2020-10-19 16:57  66如风  阅读(286)  评论(0)    收藏  举报