目錄
創(chuàng)新互聯(lián)建站是一家集成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站頁面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站建設(shè)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。序
嗨,這里是狐貍~~
項(xiàng)目代碼
圖片相關(guān)操作
結(jié)構(gòu)體
資源加載
初始化?
繪制函數(shù)
數(shù)據(jù)更新?
主函數(shù)
總結(jié)
視頻講解
沒有雪花即使不浪漫也可過圣誕,有了祝福即使是寒冬也感到溫暖
嗨,這里是狐貍~~今天是2021年12月20日星期一,又是美好的開始啊,距離2022年還有11天,距離2021年圣誕節(jié)還有5天,懂我什么意思了吧,圣誕節(jié)快到了,想好送啥禮物給女朋友了嘛,廣大程序員uu們,嘿嘿,不知道的今天來教你們來做圣誕項(xiàng)目,讓你們今年的圣誕節(jié)不孤單,起碼還有圣誕老人陪你不是,好好看好好學(xué)!
OK,我們現(xiàn)在正式開始,先來看效果
不知道大家看后感覺如何呢,好叭,有想學(xué)的感覺還挺有意思的就繼續(xù)看下去,覺得博主寫的垃圾,檔次太低的,請出門左轉(zhuǎn)不送
項(xiàng)目代碼 ?圖片相關(guān)操作先把我們要用到的變量進(jìn)行全局化處理
IMAGE imgLand;
IMAGE imgTree[10]; //圣誕樹
IMAGE imgOldman; //老人
IMAGE imgSnow[2];
bool Timer(clock_t ms, int id);
結(jié)構(gòu)體再來一個(gè)精靈結(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ù),將界面里的元素進(jìn)行初始化,確定他們的位置
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++)
{
//隨機(jī)生成雪花的坐標(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ù)進(jìn)行進(jìn)一步的繪畫
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ù),加了個(gè)定時(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;
}
}
}
//讓圣誕老人溜達(dá)一下
sprite_moveBy(&oldMan, -oldMan.speed, 0);
if (oldMan.x+oldMan.w<= 0)
{
oldMan.x = getwidth();
}
}
//讓程序更絲滑:定時(shí)器
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ù),再加上一個(gè)播放音樂函數(shù),更有畫面感,再加個(gè)雙緩沖繪圖,讓程序運(yùn)行更加絲滑。
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é)好了,這個(gè)項(xiàng)目你們看完覺得怎么樣,這是近期剛完成的,最近也是因?yàn)槭フQ節(jié)快到了,熱榜上也出現(xiàn)了很多圣誕樹的代碼,層出不窮,但好像都是Python的,沒有看到C語言的,也沒有除圣誕樹之外的項(xiàng)目,說實(shí)話看的有點(diǎn)膩了,這才寫了一個(gè)這樣的程序,比較簡單哈,希望大家也不要介意,看后續(xù)還能不能再弄個(gè)項(xiàng)目出來,希望大家多多關(guān)注啦。
想要這個(gè)項(xiàng)目素材和源碼的可以加群【765860056】領(lǐng)取,當(dāng)然啦,你們也可以自己找些素材也是可以的,想要對程序員的未來發(fā)展有興趣的希望和大家一起學(xué)習(xí)進(jìn)步。
視頻講解單獨(dú)看源碼看不懂的同學(xué),也可以看視頻講解,有不懂得問題可以回帖提問,我看到了會盡心的回答,OK,今天就這樣啦。
最后提前祝大家圣誕節(jié)快樂?。?!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章題目:【C語言代碼寫圣誕節(jié)程序】別再畫圣誕樹了,看都看膩了-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article24/dpoice.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈、網(wǎng)站策劃、域名注冊、App設(shè)計(jì)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容