欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

VS2019 +easyx 实现闪烁的星空(夜景)

程序员文章站 2022-06-16 18:03:13
开头主要是,之前,老师喊写c语言作业,就有这么个要求,用c语言写一个闪烁的星空。说实话,用c#实现挺简单的。但还是用easyx来玩。因为easyx的效果特别好,美工特别好。背景就是用这个。效果图时不时有流星划过夜空,建议自己去配bgm.代码#include#include#include#includeusing namespace std;in...

开头

主要是,之前,老师喊写c语言作业,就有这么个要求,用c语言写一个闪烁的星空。
说实话,用c#实现挺简单的。但还是用easyx来玩。

因为easyx的效果特别好,美工特别好。

背景

VS2019 +easyx 实现闪烁的星空(夜景)
就是用这个。

效果图

VS2019 +easyx 实现闪烁的星空(夜景)
时不时有流星划过夜空,建议自己去配bgm.

代码

#include<iostream>
#include<graphics.h>
#include<time.h>
#include<process.h>
using namespace std;

int windowwid = 920;
int windowhig;

struct STAR
{
	int x;
	int y;
};
STAR star[100];

void meteor()//演示流星的图像,设计成延时后产生流星
{

	int a = rand() % windowwid;
	int b = rand() % windowhig;

	int tempA, tempB;
	tempA = a;
	tempB = b;
	for (int i = 0; i < 40; i++)
	{

		setcolor(WHITE);
		setlinestyle(PS_SOLID, 1);
		circle(a, b, 1);

		Sleep(10);

		a = a - 2;
		b = b + 1;

	}
	for (int m = 0; m < 40; m++)
	{
		setcolor(BLACK);
		setlinestyle(PS_SOLID, 1);
		circle(tempA, tempB, 1);

		Sleep(10);

		tempA = tempA - 2;
		tempB = tempB + 1;
	}

}

void startup()//为星星的坐标数据初始化

{
	for (int i = 0; i < 20; i++)
	{
		star[i].x = rand() % 920;
		star[i].y = rand() % 593;
	}
}
void paintstar()//通过putpixel在屏幕打印出像素,类似于星星
{
	for (int i = 0; i < 20; i++)
	{
		putpixel(star[i].x, star[i].y, WHITE);
	}

}
void hidestar()//适当的时间后将星星遮盖
{
	for (int i = 0; i < 20; i++)
	{
		putpixel(star[i].x, star[i].y, BLACK);
	}
}
void moon()
{
	setcolor(WHITE);
	setfillcolor(WHITE);
	fillcircle(180, 100, 60);
	circle(180, 100, 60);

	int a1 = 210;//可调节
	int a2 = 80;

	setcolor(BLACK);
	setfillcolor(BLACK);
	fillcircle(a1, a2, 60);
	circle(a1, a2, 50);

}

int main()
{



	int x2; int y2;

	windowhig = windowwid * 0.618;
	initgraph(windowwid, windowhig);

	moon();

	
	
	for(int m=1;m>0;m++)
	{
		startup();
		paintstar();
		
		if (m % 3 == 0)
		{
			meteor();
		}
		Sleep(1500);
		hidestar();
	}
	system("pause");
	closegraph();
	

}

本文地址:https://blog.csdn.net/fightte/article/details/110147559