zoukankan      html  css  js  c++  java
  • 2020.10.15 第十一课 表白心形以及打包

    表白程序

    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);
    
  • 相关阅读:
    Python—字符编码转换、函数基本操作
    零散知识点
    Python—集合的操作、文件的操作
    Python—字典的操作
    Python—字符串的操作
    Spring基础—— 在 Spring Config 中使用外部属性文件
    Spring基础—— Bean 的作用域
    Spring基础——在 IOC 容器中 Bean 之间的关系
    Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配
    Spring基础——一个简单的例子
  • 原文地址:https://www.cnblogs.com/heerha/p/13842260.html
Copyright © 2011-2022 走看看