tft每日頭條

 > 生活

 > c語言我愛你代碼簡短

c語言我愛你代碼簡短

生活 更新时间:2025-02-05 20:48:14
​01

編碼過程

  • 設置星星的屬性,初始化星星,畫星星,進行星星的移動
  • 設置流星的屬性,初始化流星
  • 初始化加載數據,通過貼圖來畫流星,進行流星的移動
  • 設置表白文字
  • 主函數設置數組,加載界面
02

效果展示

c語言我愛你代碼簡短(C語言浪漫流星雨表白程序)1

03

代碼分享

#include<stdlib.h>

#include<graphics.h>//圖形界面庫

#include<conio.h>

#include<time.h>

#include<mmsystem.h>

#pragma comment(lib,"winmm")

#define MAXstar 1000

#define MAXMETEOR 100

IMAGE img1, img2, img3;

//星星的屬性

struct Star

{

int x, y;

int step;

int color;

}star[MAXSTAR];

//流星的屬性

struct Meteor

{

int x, y;

int step;

int style;

}meteor[MAXMETEOR];

//初始化星星

void initStar(int i)

{

star[i].x = rand() % 1000; //[0,999]

star[i].y = rand() % 600;

star[i].step = rand() % 6 3; //[0,5]

star[i].color = RGB(rand() % 255, rand() % 255, rand() % 255);

}

//畫星星和移動星星

void moveStar(int i)

{

//畫像素點

putpixel(star[i].x, star[i].y, star[i].color);

//移動處理

star[i].x = star[i].step;

//如果移動到了窗口外面

if (star[i].x > 1000)

{

putpixel(star[i].x, star[i].y, star[i].color);

initStar(i);

}

}

//初始化流星

void initMeteor(int i)

{

meteor[i].x = rand() % 2000-1000;//[-1000,999]

meteor[i].y = -600;//[0,599]-600-->[-600,-1]

meteor[i].step = rand() % 30 2;

meteor[i].style = rand() % 3; //[0,2]-->0,1,2

}

//初始化數據

void initDate(int i)

{

//加載圖片

loadimage(&img1, "1.jpg", 30, 30);

loadimage(&img2, "2.jpg",40, 40);

loadimage(&img3, "3.jpg", 50, 50);

for (i = 0; i < MAXSTAR; i )

{

initStar(i);

}

for (i = 0; i < MAXMETEOR; i )

{

initMeteor(i);

}

}

//畫流星:貼圖

void drawMeteor(int i)

{

for (i = 0; i < MAXMETEOR; i )

{

switch (meteor[i].style)

{

case 0:

putimage(meteor[i].x, meteor[i].y, &img1,SRCPAINT);

break;

case 1:

putimage(meteor[i].x, meteor[i].y, &img2, SRCPAINT);

break;

case 2:

putimage(meteor[i].x, meteor[i].y, &img3, SRCPAINT);

break;

}

}

}

//移動流星

void moveMeteor(int i)

{

for (i = 0; i < MAXMETEOR; i )

{

meteor[i].x = meteor[i].step;

meteor[i].y = meteor[i].step;

//如果流星跑到窗口外面

if (meteor[i].x>1000 || meteor[i].y > 600)

{

initMeteor(i);

}

}

}

//文字輸出

void text()

{

settextcolor(RGB(rand() % 255, rand() % 255, rand() % 255));

settextstyle(30, 0, "楷體");

char* text[50] = { "X", "X", "X", "我", "喜", "歡", "你", "做", "我", "女", "朋", "友", "吧", "!", };

int x = 450, y = 100;

for (int i = 0; i < 14; i )

{

if (i<7)

outtextxy(x, y i * 50, text[i]);

else

outtextxy(x 100, y (i-7) * 50, text[i]);

}

}

int main()

{

initgraph(1000, 600);

mciSendString("open 2.mp3", 0, 0, 0);

mciSendString("play 2.mp3 repeat", 0, 0, 0);

srand((unsigned int)time(NULL));//随機函數種子

setbkmode(TRANSPARENT);

int i = 0;

initDate(i);

while (1)

{

cleardevice();

for (i = 0; i < MAXSTAR; i )

{

moveStar(i);

}

drawMeteor(i);

moveMeteor(i);

text();

Sleep(100);

}

_getch();

closegraph();

//system("pause");

return 0;

}

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved