C语言基于graphics.h实现圣诞树

 更新时间:2021年12月22日 14:10:56   作者:Dafufmor  
这篇文章主要介绍了圣诞树代码,c语言编程,基于graphics.h实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

头文件 icon.h:

#pragma once
#ifndef _ICON_H_
#define _ICON_H_
 
#include<graphics.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<Windows.h>
#include<Mmsystem.h>
#pragma comment(lib,"winmm.lib")
using namespace std;
 
void init()
{
	initgraph(600, 720);
	setbkcolor(RGB(255, 255, 255));
	cleardevice();
}
 
void drawTree()
{
	IMAGE tree;
	setfillcolor(RGB(255, 255, 255));
	setbkcolor(RGB(255, 255, 255));
	loadimage(&tree, "tree.jpg", 600, 580, true);
	putimage(0, 150, &tree);
}
 
void drawDelc()
{
	IMAGE delc;
	setfillcolor(RGB(255, 255, 255));
	setbkcolor(RGB(255, 255, 255));
	loadimage(&delc, "delc.jpg", 150, 150, true);
	putimage(220, 0, &delc);
}
 
void Star(int x,int y)
{
	IMAGE star;
	setfillcolor(RGB(255, 255, 255));
	setbkcolor(RGB(255, 255, 255));
	loadimage(&star, "star.jpg", 50, 50, true);
	putimage(x, y, &star);
}
 
void Shining(int x,int y)
{
	setbkcolor(RGB(255, 255, 255));
	clearrectangle(x, y, x+50, y+50);
	Sleep(400);
	Star(x, y);
}
 
void music()
{
	mciSendString(TEXT("open Christmas.wav alias bgm"), NULL, 0, NULL);
	mciSendString(TEXT("play bgm"), NULL, 0, NULL);
}
 
void close()
{
	getchar();
	closegraph();
}
 
#endif // !_ICON_H_
 

music函数播放同目录下的Christmas.wav 音乐,需要自行导入音乐到同目录下,并按情况修改该函数中音乐文件目录,否则没有声音。

图像素材也需要自行导入

cpp文件 圣诞树.cpp:

#include<graphics.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include"icon.h"
using namespace std;
 
 
int main()
{
	init();
	drawTree();
	drawDelc();
 
	Star(60, 360);
	Star(490, 360);
	Star(150, 180);
	Star(400, 180);
	music();
	while (1)
	{
		music();
		Shining(60, 360);
		Shining(490, 360);
		Shining(150, 180);
		Shining(400, 180);
	}
	close();
	return 0;
}

效果图:

到此这篇关于C语言基于graphics.h实现圣诞树的文章就介绍到这了,更多相关c语言圣诞树内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++示例详解Prim算法与优先队列

    C++示例详解Prim算法与优先队列

    这篇文章介绍了C++ Prim算法、优先队列,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C/C++程序编译流程详解

    C/C++程序编译流程详解

    C/C++程序编译过程包括下面4个阶段:1.预处理,2.编译,3.汇编,4.链接。下面我们就来详细分析下这几个阶段。
    2016-04-04
  • Windows下CMake的下载与安装过程

    Windows下CMake的下载与安装过程

    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程),这篇文章主要介绍了Windows下CMake的下载与安装,需要的朋友可以参考下
    2022-02-02
  • C数据结构之双链表详细示例分析

    C数据结构之双链表详细示例分析

    以下是对c语言中的双链表进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • 深入理解Qt信号槽机制

    深入理解Qt信号槽机制

    信号槽是 Qt 框架引以为豪的机制之一。本文主要介绍了Qt信号槽机制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • C语言用fstat函数获取文件的大小方法

    C语言用fstat函数获取文件的大小方法

    今天小编就为大家分享一篇关于C语言用fstat函数获取文件的大小方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C语言版实现三子棋游戏

    C语言版实现三子棋游戏

    这篇文章主要为大家详细介绍了C语言版实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 深入解析C++中的构造函数和析构函数

    深入解析C++中的构造函数和析构函数

    析构函数:在撤销对象占用的内存之前,进行一些操作的函数。析构函数不能被重载,只能有一个
    2013-09-09
  • C++ EnterCriticalSection简单使用

    C++ EnterCriticalSection简单使用

    线程锁在多线程中可以控制线程的执行顺序,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • libxml教程(图文详解)

    libxml教程(图文详解)

    本篇文章是对libxm进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论