【C語言代碼寫圣誕節(jié)程序】別再畫圣誕樹了,看都看膩了-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)建站是一家集成都做網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)站頁面設(shè)計、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站建設(shè)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設(shè)計最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅持講誠信,負責(zé)任的原則,為您進行細心、貼心、認真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。

嗨,這里是狐貍~~

項目代碼

圖片相關(guān)操作

結(jié)構(gòu)體

資源加載

初始化?

繪制函數(shù)

數(shù)據(jù)更新?

主函數(shù)

總結(jié)

視頻講解


沒有雪花即使不浪漫也可過圣誕,有了祝福即使是寒冬也感到溫暖

嗨,這里是狐貍~~

今天是2021年12月20日星期一,又是美好的開始啊,距離2022年還有11天,距離2021年圣誕節(jié)還有5天,懂我什么意思了吧,圣誕節(jié)快到了,想好送啥禮物給女朋友了嘛,廣大程序員uu們,嘿嘿,不知道的今天來教你們來做圣誕項目,讓你們今年的圣誕節(jié)不孤單,起碼還有圣誕老人陪你不是,好好看好好學(xué)!

OK,我們現(xiàn)在正式開始,先來看效果

不知道大家看后感覺如何呢,好叭,有想學(xué)的感覺還挺有意思的就繼續(xù)看下去,覺得博主寫的垃圾,檔次太低的,請出門左轉(zhuǎn)不送

項目代碼 ?圖片相關(guān)操作

先把我們要用到的變量進行全局化處理

IMAGE imgLand;
IMAGE imgTree[10];	//圣誕樹
IMAGE imgOldman;	//老人
IMAGE imgSnow[2];
bool Timer(clock_t ms, int id);
結(jié)構(gòu)體

再來一個精靈結(jié)構(gòu)體,控制速度?

typedef struct
{
	int x;
	int y;
	int w;
	int h;
	int frame;		//當(dāng)前幀
	int maxFrame;	//總幀數(shù)
	int speed;		//速度
}Sprite;
資源加載

加載資源?,找好圖片的路徑,選好圖片的格式

void loadResource()
{
	//加載圖片
	loadimage(&imgLand, "Resource/land.png", getwidth(), 290);

	for (int i = 0; i< 10; i++)
	{
		char imgFile[50] = { 0 };
		sprintf_s(imgFile, "Resource/mtree/0000%d.png", i);
		loadimage(imgTree + i, imgFile, 300, 300);
	}

	loadimage(&imgOldman, "Resource/oldman.png");

	loadimage(imgSnow + 0, "Resource/snow.png");
	loadimage(imgSnow + 1, "Resource/snow1.png", 23, 32);
}
初始化?

初始化函數(shù),將界面里的元素進行初始化,確定他們的位置

void init()
{
	loadResource();
	//初始化圣誕樹數(shù)據(jù)
	sprite_init(&tree, 530, 430, 10, imgTree->getwidth(), imgTree->getheight());
	//初始化老人數(shù)據(jù)
	sprite_init(&oldMan, 700, 600, 7, 220, 154);
	//初始化雪花
	for (int i = 0; i< 50; i++)
	{
		//隨機生成雪花的坐標(biāo) rand() 
		sprite_init(snow + i, rand() % getwidth(), rand() % getheight(), 11, 23, 32);
		//讓雪花的當(dāng)前幀不一樣
		if (snow[i].maxFrame)
			snow[i].frame = rand() % snow[i].maxFrame;
		snow[i].speed = rand() % 5 + 1;
	}
}
繪制函數(shù)

根據(jù)初始化的函數(shù)進行進一步的繪畫

void draw()
{
	//輸出底下的地面
	drawImg(0, 500, &imgLand);
	//圣誕樹動畫
	drawImg(tree.x, tree.y, imgTree + tree.frame);
	//圣誕老人滑雪動畫
	drawImg(oldMan.x, oldMan.y, oldMan.w, oldMan.h, &imgOldman, oldMan.frame *220, 0);
	//繪制雪花
	for (int i = 0; i< 50; i++)
	{
		drawImg(snow[i].x, snow[i].y, snow[i].w, snow[i].h, imgSnow + 0, snow[i].frame* snow[i].w, 0);
	}

}
數(shù)據(jù)更新?

更新的函數(shù),加了個定時器,讓更新更加的穩(wěn)定且絲滑

void update()
{
	sprite_runAnimation(&tree);
	sprite_runAnimation(&oldMan);
	if (Timer(100, 0))
	{
		for (int i = 0; i< 50; i++)
		{
			sprite_runAnimation(snow + i);
		}
	}
	if (Timer(20, 1))
	{
		for (int i = 0; i< 50; i++)
		{
			//雪花下落
			sprite_moveBy(snow + i, 0, snow[i].speed);
			//是否超出邊界
			if (snow[i].y >getheight())
			{
				snow[i].y = snow[i].h;
			}
		}
	}
	//讓圣誕老人溜達一下
	sprite_moveBy(&oldMan, -oldMan.speed, 0);
	if (oldMan.x+oldMan.w<= 0)
	{
		oldMan.x = getwidth();
	}

	
}
//讓程序更絲滑:定時器
bool Timer(clock_t ms, int id)
{
	static clock_t beg[5] = { 0 };
	clock_t end = clock();
	if (end - beg[id] >= ms)
	{
		beg[id] = end;
		return true;
	}
主函數(shù)

調(diào)用函數(shù),再加上一個播放音樂函數(shù),更有畫面感,再加個雙緩沖繪圖,讓程序運行更加絲滑。

int main()
{
	//界面,繪圖,控制臺
	//創(chuàng)建窗口
	initgraph(1024, 768, EW_SHOWCONSOLE);
	init();

	//播放音樂
	mciSendString("open Resource/song.mp3 alias bgm", NULL, 0, NULL);
	mciSendString("play bgm repeat", NULL, 0, NULL);

	BeginBatchDraw();	//開始雙緩沖繪圖
	while (true)
	{
		cleardevice();	//清屏
		draw();
		FlushBatchDraw();	//刷新
		update();
	}
	EndBatchDraw();

	getchar();
	return 0;
}
總結(jié)

好了,這個項目你們看完覺得怎么樣,這是近期剛完成的,最近也是因為圣誕節(jié)快到了,熱榜上也出現(xiàn)了很多圣誕樹的代碼,層出不窮,但好像都是Python的,沒有看到C語言的,也沒有除圣誕樹之外的項目,說實話看的有點膩了,這才寫了一個這樣的程序,比較簡單哈,希望大家也不要介意,看后續(xù)還能不能再弄個項目出來,希望大家多多關(guān)注啦。

想要這個項目素材和源碼的可以加群【765860056】領(lǐng)取,當(dāng)然啦,你們也可以自己找些素材也是可以的,想要對程序員的未來發(fā)展有興趣的希望和大家一起學(xué)習(xí)進步。

視頻講解

單獨看源碼看不懂的同學(xué),也可以看視頻講解,有不懂得問題可以回帖提問,我看到了會盡心的回答,OK,今天就這樣啦。

最后提前祝大家圣誕節(jié)快樂!?。?img src="/upload/otherpic11/78a0f5489c2746b5b4b1c8d31ee31787.jpg" />

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章題目:【C語言代碼寫圣誕節(jié)程序】別再畫圣誕樹了,看都看膩了-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://bm7419.com/article24/dpoice.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈、網(wǎng)站策劃域名注冊、App設(shè)計、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化